鍊錶是資料結構的基礎,也就是誰學好資料結構的基礎就是學好鍊錶,所以接下開我們就來看看鍊錶是如何建立的吧!
/*生成單鏈表*/
#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...