資料結構學習 2 鍊錶

2021-09-24 05:57:50 字數 813 閱讀 3479

重點講一下插入和刪除以及頭插法和尾插法,其他的應該很好推。

status listinsert(linklist *l, int i, elemtype e) 

if (!p || j > i)

s = (linklist) malloc(sizeof(node)); /*生成新節點*/

s->data = e; /*元素賦值*/

s->next = p->next; /*把p指向下個元素指向變成s的指向*/

p->next = s; /*把s賦值給p的後繼*/

return ok;

}

傳入引數有3個,乙個是鍊錶,因為要對鍊錶進行修改,因此傳入了乙個*l,第二個是位置資訊,第三個是插入元素的內容。

刪除鍊錶結點

status listdelete(linklist *l,int i,elemtype *e) 

if (!(p->next) || j > i)

return error; /* 第i個元素不存在 */

q = p->next;

p->next = q->next; /* 將q的後繼賦值給p的後繼 */

*e = q->data; /* 將q結點中的資料給e */

free(q); /* 讓系統**此結點,釋放記憶體 */

return ok;

}

這裡多了一步**free ,可以與上面的插入相對,乙個是插入生成新節點,乙個是刪除解放舊結點。

資料結構學習 鍊錶

將從下面4部分進行介紹 首先介紹鍊錶是什麼,然後介紹為什麼定義鍊錶,接著是鍊錶的分類,最後簡單介紹一下鍊錶結點的插入與刪除方法。首先,在介紹鍊錶之前,我們先介紹一下什麼是順序儲存結構。我們知道資料在計算機中的儲存就像貨物在倉庫中的儲存一樣,不但占用一定的空間,還要有乙個標示儲存位置的位址。計算機通過...

資料結構學習 鍊錶

由於不必須按順序儲存,鍊錶在插入的時候可以達到o 1 的複雜度,比另一種線性表順序表快得多,但是查詢乙個節點或者訪問特定編號的節點則需要o n 的時間,而線性表和順序表相應的時間複雜度分別是o logn 和o 1 使用鍊錶結構可以克服陣列鍊錶需要預先知道資料大小的缺點,鍊錶結構可以充分利用計算機記憶...

資料結構學習 鍊錶結構

儲存結構定義 struct node typedef struct node ptrtonode typedef ptrtonode list typedef ptrtonode position struct node 書寫 package thedatastructureaboutlinked ...