靜態鍊錶相當於是用乙個陣列來實現線性表的鏈式儲存結構,在靜態鍊錶中操作的是陣列。
結構體陣列
一、靜態鍊錶的插入操作
靜態鍊錶的插入操作包含兩部分,首先是獲得空閒量的下標,程式**如下;
int
getcur
(staticlinklist tan)
要想更好的理解,最好結合乙個靜態列表的例項來掌握,下面給出一靜態列表
每當進行插入時,便可以從備用鍊錶上取得第一結點下作為待插入的新結點,下面給出在靜態鍊錶中第i個元素之前插入新的資料e的**。
int
listinsert
(staticlinklist tan,
int i,elemtype e)
//靜態鍊錶中第i個元素之前插入新的資料e
tan[j]
.cur = tan[k]
.cur;
tan[k]
.cur = j;
return bingo;
}return error;
}
二、靜態鍊錶的刪除操作
為了很好的表示靜態鍊錶的刪除操作,下面給出一靜態鍊錶的例項。
假設刪除靜態鍊錶中下標為2的元素,即為鍊錶中第3個元素
void
recyclenode
(staticlinklist tan,
int i)
//將下標為k的空閒結點**到備用鍊錶
intlistdelete
(staticlinklist tan,
int i)
//刪除鍊錶中第i個資料元素
j = tan[k]
.cur;
//將要刪除元素的下標
tan[k]
.cur = tan[j]
.cur;
recyclenode
(tan,j)
;return bingo;
}
總結下靜態鍊錶的優缺點:
優點:在插入和刪除操作時,只需要修改游標,不需要移動元素,從而改進了在順序儲存結構中的插入和刪除操作需要大量移動元素的缺點。
缺點:1)失去了順序儲存結構隨機訪問的特性。2)沒有解決連續儲存分配(陣列)帶來的表長難以確定的問題。
鍊錶的刪除和插入
struct student del struct student head,long num p1 head while num p1 num p1 num null if num p1 num else p2 next p1 next printf delete ld n num n n 1 e...
鍊錶的插入和刪除
while null p ipnext i if null p i pos 1 while null p pnext ipnext i if null p pnext i pos 1 pos為位置,1.不正常執行 1 位置為 pos 1 依靠 i pos 1 來報錯,2 比鍊錶結點個數多 插入需要多...
靜態鍊錶的初始化 插入 刪除
include include define ok 1 define true 1 define error 1 define false 1 define overflow 2 define elemtype int define status int 靜態鍊錶 x 使用陣列實現鍊錶,可以在沒有指...