資料結構鍊錶C語言版 單向鍊錶詳解

2021-10-04 19:55:37 字數 1509 閱讀 1244

最近在準備計算機考研,正在複習資料結構的知識點,剛開始學習鍊錶的時候實在是有些痛苦,在痛苦了幾個小時後,終於有所收穫,在此記錄一下

①:相鄰元素之間通過指標連線。

②:最後乙個元素的後繼指標為null。

③:鍊錶的空間能夠按需分配。

④:沒有記憶體空間的浪費。

typedef

struct node

node;

定義乙個struct node型的結構體,在以後的程式中用node來代替struct node出現(方便更改和操作);

typedef

struct node

lnode;

該結構體中存放的是兩個結點,(是位址!!!!)不可以直接對他進行取值!!

生成乙個元原始鍊錶(空鍊錶,沒有指向任何結點)

lnode *

createlist()

新生成的原始鍊錶要返回給主調函式用,注意返回值型別和指標函式型別;

void

crea

(lnode *list)

//生成孤立結點

node *pnew=

(node *

)malloc

(sizeof

(*pnew));

//注意這裡要在while()裡面定義和分配空間!!!

pnew-

>next=

null

;//因為每新增乙個新結點就需要多增加一塊儲存空間!!!

pnew-

>date=i;

//這裡錯 1 次!!

//判斷鍊錶是否為空鍊錶,是空鍊錶就讓鍊錶的頭和尾都指向孤立結點

if(list-

>head==

null

)//注意不能直接用head!!! //這裡錯 1 次!!

else

//不是孤立結點就插入結點生成鍊錶

}}

void

print

(lnode *list)

node *p=list-

>head;

//注意這裡p指向的是鍊錶的頭結點,p的型別是結點型的!!不是鏈表型的。

while

(p)printf

("\n");

}2).列印並銷毀鍊錶

void

print

(lnode *list)

node *p=list-

>head;

//用來指向要列印的結點

node *pre=

null

;//用來指向列印完的結點

while

(p)printf

("\n");

free

(list)

;//把空鍊錶也銷毀

}

如果有問題 請指出

我們一起進步

資料結構 鍊錶(C語言版)

程式 include include include define error 0 define ok 1 define true 1 define false 0 define overflow 2 typedef int elemtype 定義鍊錶元素的型別 typedef int status...

王道資料結構鍊錶C語言版

include stdio.h include stdlib.h include stdbool.h typedef struct lnode lnode,linkedlist 初始化乙個單鏈表 帶頭結點 linkedlist initlist linkedlist l l next null 頭結...

資料結構(C語言) 單向鍊錶

c語言的單向鍊錶,就是在乙個將一些資料放在乙個結構體裡,然後在結構體裡加 struct next 的成員,用於指向下一結點。引用時,建立乙個臨時的結構體變數進行引用。如原結構體變數為 struct p 則 可建立 struct temp,然後 for temp p temp next null te...