C語言實現循環鏈表與雙向鏈表

《大話數據結構》之循環鏈表和雙向鏈表
與單鏈表區別,原來判斷p->next是否爲空,現在判斷p->next不等於頭結點則循環結束

不用頭指針,使用指向終端節點的尾指針表示循環鏈表
這裏寫圖片描述
這裏寫圖片描述

將兩個循環鏈表合併成一個:

p=rearA->next;//保存A頭結點
rearA->next = rearB->next->next;//B表的第一個節點賦值給rearA->next
q=rearB->next;
rearB->next = p;//A頭結點賦值給 rearB->next
free(p)//釋放B表頭結點

雙向鏈表是在單鏈表的每個結點中,再設置一個指向其前驅結點的指針域。

雙向鏈表的插入:
這裏寫圖片描述

//s爲插入節點
s->prior = p;
s->next = p->next;
p->next = s;
p->next->prior = s;

雙向鏈表刪除:
示意圖

//p爲刪除節點
p->prior->next = p->next;
p->next->prior = p->prior
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章