鍊錶用節點儲存資料,其節點中有存放資料的變數,也存放著指向下乙個節點位址的指標。
1 typedef intelemtype;
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 定義了乙個結構...