雙向迴圈鍊錶 C語言實現

2021-09-26 21:29:38 字數 1306 閱讀 3950

雙向迴圈鍊錶的儲存結構:

雙向鍊錶也是採用的鏈式儲存結構,它與迴圈鍊錶的區別就是每個資料結點中多了乙個指向前驅元素的指標域 ,可以有頭結點,也可以沒有。它的儲存結構如下圖:

當只有頭結點時:

具體**實現:

//雙向迴圈鍊錶,有頭結點

#define _crt_secure_no_warnings

#include#include#include#includeusing namespace std;

typedef int elemtype;

typedef struct double_list

double_list;

//建立雙向迴圈鍊錶

double_list *creatlist()

return head;

}//顯示雙向迴圈鍊錶

void dispaly(double_list *head)

printf("\n");

}//獲得雙向鍊錶中元素的個數

int length(double_list *head)

return num;

}//在第i個元素之前插入資料

void insertelem(double_list *head, int i, elemtype elem)

} q->next = p->next;

p->next->prev = q;

p->next = q;

q->prev = p;

}//刪除第i個元素的資料

void deletelem(double_list *head, int i, elemtype &elem)

} double_list *q = p->next;

elem = q->data;

(q->next)->prev = p;

p->next = q->next;

free(q);

}//刪除值為x的元素

void deletelist_x(double_list *head, int x)

else

p = p->next;

}int main()

執行結果如圖:

C語言實現雙向迴圈鍊錶

list 雙向迴圈鍊錶,帶頭指標 struct list node 初始化頭指標 void list init head struct list node head 量表是否為空 是返回1,否返回0 int list is empty const struct list node head 鍊錶遍歷...

C語言實現雙向迴圈鍊錶

list 雙向迴圈鍊錶,帶頭指標 struct list node 初始化頭指標 void list init head struct list node head 量表是否為空 是返回1,否返回0 int list is empty const struct list node head 鍊錶遍歷...

c語言實現雙向迴圈鍊錶

雙鏈表實現直通車 單迴圈鍊錶實現直通車 雙鏈表的實現與上面兩者都有大量相似之處。實現功能部分 雙迴圈鍊錶的實現 基於雙鏈表實現,大體區別是尾節點後繼指向頭節點,頭節點的前驅指向尾節點 主要區別還是列印,插入節點 首 中 尾 前插 後插.刪除節點 首 尾 需要特別注意 include include ...