鍊錶的建立

2021-10-18 20:33:08 字數 1628 閱讀 1531

鍊錶是資料結構的基礎,也就是誰學好資料結構的基礎就是學好鍊錶,所以接下開我們就來看看鍊錶是如何建立的吧!

/*生成單鏈表*/

#include#includetypedef struct nodenode;

node* create_list(void);//宣告函式

//主程式

int main(void)

//建立鍊錶的實現函式

node* create_list(void)

node *ptail = phead;//定義乙個指標始終指向最後乙個結點以便時結點串起來

ptail->pnext = null;//清空最後乙個結點的指標域

printf("請輸入節點的個位:len");

scanf("%d",&len);

for(int i =0 ; idata = val;//將val臨時儲存的資料存到資料域中

ptail->pnext = pend;//使該次生成的乙個結點掛在上次最後乙個結點的後面

pend->pnext = null;//清空最後乙個結點的指標域

ptail = pend;//使ptail始終指向最後乙個結點

}return phead;

}

這個程式還有不足的地方就是把動態分布的記憶體手動釋放掉(全是自己一字一字碼出來的55555555)

講解如下:

image.png

對於這個**其實注釋的很清楚了就是分配了乙個頭節點,而phead就是頭指標,指向頭節點。

2. image.png

對於這行**就是這個函式要返回乙個頭結點的位址也就是頭指標給主函式中的phead接受,使主函式中的phead成為頭指標,方便對該單鏈表的後續操作

右邊那個是最新的結點,而ptail指向左邊的結點(建立右邊結點之前的最後乙個結點)

執行第二句話之後:

建立了中間的指向關係,也就是讓新建的最後乙個結點掛在了上乙個結點後面

,實現了結點的串聯(難點)

第三句話實際上就是將最後乙個結點的pnext指標清空(如果後面不繼續增加結點,那麼這個結點就是尾節點,尾節點的指標域應該為空)

第四句話就是將ptail指向最後乙個結點(ptail都應該指向最後乙個結點)

鍊錶(鍊錶建立)

先找到了一些與單鏈表相關的概念 2.指標域 ai元素儲存指向後繼元素儲存位置的資訊 3.結點 包含資料域和指標域 4.單鏈表 每個結點只包含乙個指標域的線性表 5.頭指標 要素 鍊錶中第乙個結點的儲存位置 線性表最後乙個結點指標為空 6.頭結點 非要素 單鏈表第乙個結點前附設乙個結點 其指標域指向第...

鍊錶的建立

上學期c 老師教鍊表的時候沒有認真聽,這學期要補回來。今天就先來寫一寫鍊錶的建立的基本的 輸入輸出的。正序輸入輸出 include include struct node struct node creat int n 鍊錶的錄入 return head void show struct node ...

鍊錶的建立

動態鍊錶 1.建立鍊錶 動態鍊錶使用new delete需要新增標頭檔案stdlib.h同時我們需要注意的是這裡配合使用了指向前驅結點的指標pre和指向當前結點的p。通過資料域與指標域進行建立新結點。需要注意的是頭結點head的資料域是不儲存資料的。以下是基本的動態鍊錶的 include inclu...