鍊錶
1。是由結構體和指標構成的。
2。包括兩個部分乙個是資料域和指標域。
3。鍊錶中的結點分為兩類:頭結點和一般結點。頭結點是沒有資料域的。
4。基本操作有:初始化鍊錶,增加結點和刪除結點,求鍊錶的長度等等。
struct linknode;
這個地方有個知識點:這個是鍊錶的資料結構是有結構體和指標構成。結構體名為linknode.但這裡面沒有定義結構體變數,只有我們定義了結構體變數才能使用結構體。
結構體變數怎麼定義呢?
有兩種方式:
1。struct linknode linklist;
2.typedef struct linknode linklist.
一般我們都希望採用第2種,這樣的好處是: 當我們再定義結構體變數時,可以用:linklist p;而如果我們採用第一種還必須採用 struct linknode p;對比一下就可以知道第2種要簡單很多。那麼下面我們都採用第2種方式來定義結構體變數。
上面我們已經定義了乙個鍊錶:
1。初始化鍊錶。
#include
#include
int initlinklist(linklist **lnode)
在初始化鍊錶的時候,我們用到了2級指標為什麼呢?因為我們希望在initlinklist函式生成的頭結點,主函式中也能指向這個頭結點。如果我們用一級指標的話,用malloc分配空間的時候,它將會返回分配空間的首位址給指標變數lnode,而不能使是的空間被主函式中指標變數l得到這個位址。所以我們要用2級指標。
void main()
2。增加鍊錶結點
增加鍊錶結點其實很簡單,一般用到三個結構體指標變數和乙個迴圈結構。
insertlinklist(linklist *lnode)
while(9);//迴圈退出的條件是輸入的資料-9999
}void main()
3。求鍊錶的長度:
int lengthlinklist(linklist *lnode)
return i; }
void main()
4.刪除結點
刪除鍊錶結點其實很簡單,一般用到三個結構體指標變數和乙個迴圈結構。
destroylinklist(linklist *lnode)
}void main()
基本的知識點有:結構體變數,結構體指標變數,頭結點和一般結點,資料域和指標域,while迴圈。
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 定義了乙個結構...