最近在準備計算機考研,正在複習資料結構的知識點,剛開始學習鍊錶的時候實在是有些痛苦,在痛苦了幾個小時後,終於有所收穫,在此記錄一下
①:相鄰元素之間通過指標連線。
②:最後乙個元素的後繼指標為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...