雙鏈表的頭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指向雙向...