C語言實現 雙向迴圈鍊錶

2021-10-06 23:07:36 字數 829 閱讀 7417

迴圈單鏈表是在在單鏈表的基礎上,用最後的乙個結點的指標域指向頭結點形成的。因此它在邏輯上是乙個環形結構。

雙向是乙個節點有前驅和後驅。

結構定義

typedef

struct list

circularlist;

建立頭節點

circularlist*

initlist()

向鍊錶插入資料(尾插法)

void

listinsert

(circularlist* head,

int data)

p->data = data;

h->nxet = p;

p->nxet = head;

//最後乙個指向頭節點

p->prior = h;

// head->prior = p;

//頭節點前驅指向最後乙個節點

}

列印資料(檢視是否正確)

int

print

(circularlist* head,

int way)}if

(way ==1)

//倒序列印

}}

順序列印是測試後驅,倒序是測試前驅。

測試迴圈,即把if中

hp != head

改為:

hp != null

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 ...