靜態鍊錶 :用陣列描述的鍊錶
備用鍊錶 :未被使用的陣列元素
建立:
#define size 1000
//為了方便插入資料通常會把陣列建立的大些
typedef
struct
stlist;
stlist space[size]
;
初始化:
//初始化靜態鍊錶
void
inilist()
space[size -1]
.cur =0;
///目前靜態鍊錶為空,最後乙個元素的游標為零
}
分配:
//若備用鍊錶非空,則返回分配節點的下標,否則返回0
intmalloc_list()
return i;
}
煉表表長:
//返回資料元素個數
intlistlength()
return j;
}
malloc:
//在靜態鍊錶中第i個元素之前插入元素e
intinsert
(int i,
int e)
j =malloc_list()
;//獲得空閒分量的下標
if(j)
space[j]
.cur = space[k]
.cur;
//把第i個元素之前的游標給新元素
space[k]
.cur = k;
//把新元素的下標給第i個元素之前的元素的cur
return1;
}return0;
}
free:
//將下標為 k 的備用節點**到備用鍊錶
void
free
(int k)
刪除:
int
listdelete
(int i)
k = size -1;
for(j =
1; j <= i -
1; j++
) j = space[k]
.cur;
space[k]
.cur = space[j]
.cur;
free
(j);
return true;
}
資料結構與演算法之 靜態鍊錶
staticlinkedlist.h 靜態鍊錶 typedef int elemtype define maxsize 20 typedef struct component,staticlinkedlist maxsize define ok 1 define error 0 typedef in...
動態資料結構 靜態鍊錶(C語言)
我們在程式裡大多使用的是靜態資料結構,比如說整型 浮點型 陣列,它們的特點是由系統分配,固定大小的儲存空間。在之後程式執行時,它的空間位置以及容量都不會再改變。但當我們不確定乙個東西的儲存空間時應該如何處理?這時我們就需要用到動態資料結構。首先鍊錶需要有乙個頭指標變數 即head head存放了乙個...
資料結構與演算法 c語言 03 鍊錶
1.單鏈表的建立與輸出 請用鍊錶的形式儲存使用者輸入的n個整數。要求使用堆記憶體,注意記憶體的分配和釋放。輸入 第一行整數n,第二行n個整數 輸出 n個整數之和 例如 輸入 53 6 9 10 1 輸出 29 include include typedef struct node node 不能直接...