單鏈表的插入和刪除操作

2022-05-04 07:21:12 字數 749 閱讀 5351

插入的偽**:(仿照c語言和python)

status listinsert_l(linklist &l, int i, elemtype e)#第i個位置前插入節點(注:&&是比較ascii碼)

read p = l and j = 0

while( p && j < i-1)

p = p -> next

read j += 1

if(!p || j> i - 1) return error

s = (linklist )malloc(sizeof(lnode)) #生成新節點

s->data = e

s->next = p->next;

p->next = s

return ok

刪除的偽**:(仿照c語言)

status listdelete_l(linklist &l, int i, elemtype &e)

//刪除第i個元素,並有e作為返回值

p = l and j = 0

while( p->next && j < i-1)

p = p ->next

j++

if(!(p->next) || j > i-1) return error //刪除位置不合理

q = p->next

p->next = q->next

e = q->data

free(q)

return ok

參考資料:

單鏈表的插入和刪除

常見的資料結構只有兩種 1 陣列 2 鍊錶 陣列中的元素是連續儲存的,而鍊錶的元素則可以不連續,只需要有指標指向下乙個元素即可。因此鍊錶適合儲存插入刪除比較頻繁的一組資料。另外鍊錶的儲存空間是動態的,不必預先分配指定的空間大小。下面介紹鍊錶的幾種常見操作。首先先定義乙個鍊錶 struct linkl...

單鏈表的插入和刪除

單鏈表的插入與刪除 單鏈表的插入 單鏈表第 i個資料插入結點的演算法思路 1.宣告乙個結點 p指向第乙個結點,初始化j從 1開始 2.當 j時,就遍歷鍊錶,讓 p的指標向後移動,不斷指向下乙個結點,j累加 1 3.若到鍊錶末尾 p為空,則說明第 i個元素不存在 4.否則查詢成功,在系統中生成乙個空結...

單鏈表插入刪除

在鍊錶的插入刪除操作上理解起來比順序表更為容易,其不需要變動在i位置前的所有的元素,只需要修改節點指標即可。插入 設在鍊錶的i位置插入新元素,設i 1節點的指標域為p,設插入的節點指標域為s,所以插入操作應該為 s next p next 將s的字尾改為p的字尾,p的字尾是原來的第i個點的指標域,將...