C語言鍊錶

2022-08-23 19:54:10 字數 1203 閱讀 4119

鍊錶用節點儲存資料,其節點中有存放資料的變數,也存放著指向下乙個節點位址的指標。

1 typedef int

elemtype;

23 typedef struct

nodelinkedlist;

鍊錶初始化有2種方法,頭插法建立和尾插法建立。頭插法:插入第乙個元素到頭結點之後,下乙個元素插到當前元素之前,後面依次。尾插法:插入第乙個元素到頭結點之後

1 linkedlist *init_linkedlisth()

24return

head;

2526 }

1 linkedlist *init_linkedlistt()

25return

head;

2627 }

鍊錶方便插入和刪除節點。插入分為前插和後插

1

//前插運算 把頭指標和某節點指標傳入,*s為待插入節點

2void insertbefore(linkedlist *p,linkedlist *s,linkedlist *head)

89 s->next =p;

10 temp->next =s;

1112}13

14//

後插運算 p為指向鍊錶中某個節點的指標 .*s為待插入節點

15void insertafter(linkedlist *p,linkedlist *s)

刪除分為後繼節點刪除和刪除本身節點,後繼節點刪除先判斷後繼節點是否存在,若存在則刪除。而刪除本身節點的思路則是先判斷後繼節點是否存在,若存在則把後繼節點元素值賦給本身節點,再呼叫後繼節點刪除函式刪除後繼節點;若不存在則找到本身節點的上乙個節點,在呼叫後繼節點刪除函式刪除後繼節點。盡量避開從頭結點開始的遍歷運算。

1

//刪除後繼節點

2int deleteafter(linkedlist *p)

1112

//刪除節點本身

13int deletenode(linkedlist *head,linkedlist *p)

21else

2829 }

c語言 鍊錶 C語言鍊錶例項 玩轉鍊錶

下圖為最一簡單鍊錶的示意圖 第 0 個結點稱為頭結點,它存放有第乙個結點的首位址,它沒有資料,只是乙個指標變數。以下的每個結點都分為兩個域,乙個是資料域,存放各種實際的資料,如學號 num,姓名 name,性別 和成績 score 等。另乙個域為指標域,存放下一結點的首位址。鍊錶中的每乙個結點都是同...

c語言鍊錶 鍊錶

在儲存一大波數的時候,我們通常使用陣列,但有時候陣列顯得不夠靈活,比如有一串已經從小到大排序好的數 2 3 5 8 9 10 18 26 32 現在需要往這串數中插入6使其得到的新序列仍符合從小到大排列。如果我們使用陣列來實現這一操作,則需要將8和8後面的數字都依次往後挪一位,如果你覺得這幾個數不算...

c語言 鍊錶 C語言之鍊錶入門

鍊錶三要素 1 頭指標 head 是用來說明鍊錶開始了,頭指標就代表鍊錶本身 所以以後要訪問鍊錶,就要訪問頭指標 2 結點 node 鍊錶中每乙個結構體變數 3 尾指標 用來說明鍊錶的結束 它是乙個空指標,null include includetypedef struct stud 定義了乙個結構...