1、實驗目的:ios
以上爲實驗的要求接下來來探討如何的去實現,這裏我用的是codeblocks加上notepad++,結合了不少人的代碼,慢慢從小白蛻化····>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
物理分割算法
#include<stdio.h>#include<stdlib.h>#include<iostream>#include<iomanip>
咱們引入這些庫函數,要使用到malloc、cout、cin等等,我是從c轉型的因此可能或許有些許的不一樣吧編程
假定咱們的內存的分區可用空間爲1000kb 那麼咱們須要定義一些預處理
#define maxsize 1000
這個應該均可以看懂我就不過多的敘述了數組
定義數據結構
//結構的定義
typedef struct freePart{//空閒分區
long size;//分區的大小
long add;//分區的地址
int state;//狀態
}elemType;
typedef struct twoNode{//雙向鏈表
elemType data;
struct twoNode *pri;//前趨
struct twoNode *nex;//後驅
}twoNode,*linkTwoList;
數據結構
typedef struct T{//排序的鏈表結構(單)
linkTwoList p;
struct T *next;
}T;
函數
linkTwoList tou;//頭節點
linkTwoList wei;//尾節點
T *headtou;
指針
這些的定義咱們能夠參考一下書上的講解,首先假設咱們都實現了咱們在main中須要怎麼去寫咱們的代碼呢?
咱們得初始化咱們的代碼,由於咱們的內存分區是由雙向鏈表中的結構體實現的,因此咱們首先得初始化咱們的雙向鏈表,頭節點不須要指向任何東西,尾部的節點須要pri頭節點,指向1000的空閒區,最後連接上一個null,這樣咱們的第一個就作好了。這個是咱們的想法,具體的實現,以後再講解。
當咱們初始化完了以後咱們會想着去顯示在控制檯上,那麼咱們也能夠將咱們的顯示給定義爲一個函數(方法),那麼如何的去實現呢?
咱們以前並未說明分區號由於咱們是從0開始讓它自動的遞加code