C語言 資料結構與演算法 靜態鍊錶

2021-10-03 06:00:15 字數 1296 閱讀 2003

靜態鍊錶 :用陣列描述的鍊錶

備用鍊錶 :未被使用的陣列元素

建立:

#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 不能直接...