C初級 雙向鍊錶

2021-09-17 01:17:00 字數 1039 閱讀 9867

雙鏈表的頭head能找到下乙個節點a,節點a不能訪問頭head

對於鍊錶中指標指向問題的說明:

1.在定義結構體b時,在結構體內部定義了乙個指向上一位置a的指標;也定義了指向下一位置的指標c

(在**中,一般將head->next=c;head=b;head->pre=a)

2.在進行插入操作時,有結構體指標p,該結構體指標內部也同樣定義了上一位置指標a1,下一位置指標b1

3.要基於1 2 兩點的認識進行插入 刪除操作的理解

#include

#include

typedef

struct node

node;

//插入乙個新節點

void

insertdata

(node*head,

int data)

//列印函式

void

print

(node* head)

printf

("null\n");

}//刪除乙個資料

void

deledata

(node* head,

int data)

p = p->next;}}

//刪除全部資料

void

deleall

(node* head)

free

(head);}

intmain()

;printf

("以下輸出用於展示雙向鍊錶的資料插入情況:\n");

for(

int i =

0; i <10;

++i)

print

(head)

;printf

("\n\n以下函式用於說明刪除數字4之後的鍊錶情況:\n");

deledata

(head,4)

;print

(head)

;getchar()

;return0;

}

C 雙向鍊錶

部落格介紹了c語言,以及c 的單向鍊錶。那麼我們今天介紹的雙向鍊錶,顧名思義,就是資料本身具備了左邊和右邊的雙向指標。雙向煉表相比較單向鍊錶,主要有下面幾個特點 1 在資料結構中具有雙向指標 2 插入資料的時候需要考慮前後的方向的操作 3 同樣,刪除資料的是有也需要考慮前後方向的操作 那麼,乙個非迴...

C 雙向鍊錶

includeusing namespace std typedef int datatype class linknode friend class slist private datatype data linknode prev linknode next class slist void p...

C 雙向鍊錶

考慮順序表中總是可以很方便地找到表元素的前驅和後繼,但單鏈表只能找後繼。如要找前驅,必須從表頭開始搜尋。為了克服這一缺點,可採用雙向鍊錶 double linked list 雙向鍊錶經常採用帶頭結點的迴圈鍊錶方式,如下圖所示。檢視動畫演示 圖7.10 帶表頭結點的雙向迴圈鍊錶 假設 指標p指向雙向...