(二)單鏈接表的實現之從尾部插入節點
阿新 • • 發佈:2019-01-02
(二)單鏈接表的實現之從尾部插入節點
從尾部插入節點
從尾部插入節點如上圖所示,只要將建立的節點的pNext指標指向下一節點地址即可:pHeader->pNext = New;
從尾部插入節點分成兩個步驟:
- 找到連結串列的最後一個節點;
- 將新的節點和原來的最後一個節點連結起來。
1/*
2 *pH : 表示連結串列的頭指標
3 *new: 新節點的首地址
4 */
5void insert_tail(struct node *pH,strtuct node *new )
6{
7 struct node *p = pH; //node定義 見上一章節
8 while(NULL != p -> pNext)
9 {
10 p = p -> pNext;
11 }
12 p -> pNext = new;
13}
構建一個簡單的列表
1#include <stdio.h>
2#include <string.h>
3#include <stdlib.h>
4struct node
5{
6 int data;
7 struct node *pNext;
8};
9struct node *create_node(int data);//實現見上一章
10void insert_tail(struct node *pH,strtuct node *new);
11int main()
12{
13 struct node *pHeader = create_node(1);
14 insert_tail(pHeader ,create_node(2));
15 insert_tail(pHeader ,create_node(3));
16 printf("node1 data: %d.\n",pHeader->data);
17 printf("node2 data: %d.\n",pHeader->pNext->data);
18 printf("node2 data: %d.\n",pHeader->pNext->pNext->data);
19}
什麼是頭節點
連結串列把頭指標指向的第一個節點作為頭節點使用。頭節點有兩個特點:它緊跟在頭指標後面;頭節點的資料部分是空的(或者儲存連結串列節點數),指標部分指向第一個有效節點。
頭節點和其他節點不同,頭節點在建立頭指標時一併建立並和頭指標關聯起來。後面真正的節點用節點新增函式新增。
連結串列的頭節點不是必須的。有無頭節點在一些演算法處理上有些不同。比如插入節點、刪除節點、遍歷節點。