雙向迴圈鍊錶的學習總結

2021-09-27 05:53:37 字數 946 閱讀 1526

雙向迴圈鍊錶有兩個指標節點,乙個指向前驅,乙個指向後繼,可以向前和向後訪問任何資料。

##實現建立、刪除、新增、輸出雙向迴圈鍊錶的資料的c語言**

/*   雙向鍊錶的建立及插入乙個資料及輸出所有的資料   */

#include#includestruct node_t

node;

int main(int ar**, char *argn)

/* 依次輸出雙向鍊錶的值 */

while (p2->next != null)

/* 在第i個位置插入數值 */

p1 = head;

p5 = null;

scanf("%d%d", &i, &num);

p4 = (struct node_t*)malloc(sizeof(struct node_t));

p4->num = num;

while (--i)

p4->next = p5;

p5->pre = p4;

p1->next = p4;

p4->pre = p1;

p2 = head;

/* 依次輸出雙向鍊錶的值 */

while (p2->next != null)

/* 刪除第 i 個數資料的值 */

scanf("%d%d", &i, &num);

p1 = head;

while (--i)

p1 = p1->pre;//這個是p1原來的位置

p1->next = p2;

p2->pre = p1;

p2 = head;

/* 依次輸出雙向鍊錶的值 */

while (p2->next != null)

system("pause");

}

雙向鍊錶和雙向迴圈鍊錶

和單向鍊錶相比,多了乙個前驅結點。如果他為空,那麼next和prior都指向自己。而對於雙迴圈鍊錶,只需要最後乙個元素的next指向head next,head next的prior指向最後乙個節點即可。新節點s插入鍊錶,s next給p結點,s prior給p prior,然後,p prior n...

迴圈鍊錶,雙向鍊錶

迴圈鍊錶 迴圈鍊錶與順序鍊錶之間的區別 迴圈鍊錶最後乙個資料的next指標域不為空,而是指向頭結點,其他基本操作大體相同,只是在判斷表結束的條件變為判斷節點的引用域是否為頭引用 雙向鍊錶 author neosong date oct 10,2017 4 43 01 pm program of in...

鍊錶 雙向迴圈鍊錶

雙向迴圈鍊錶與單鏈表一樣,都是邏輯連續 物理不連續的儲存方式,但它的效果要遠遠優於單鏈表,其結構如下 雙向迴圈鍊錶首先要有乙個頭節點,頭節點中不存放資料,真正的資料從頭節點的下乙個節點開始存放 然後每乙個節點都有兩個指標,分別指向前乙個節點和後乙個節點 最後頭尾相連,就成了雙向迴圈鍊錶。includ...