《大話數據結構》之循環鏈表和雙向鏈表
與單鏈表區別,原來判斷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