迴圈鍊錶在單鏈表的基礎上做了一些修改,序列中最後乙個節點的指標域指向序列的第乙個節點,構成乙個閉環。這允許在迴圈遍歷的過程中回到節點的第乙個節點。原先單鏈表的最後乙個節點的指標域為空,在迴圈鍊錶中不存在空指標域。
迴圈鍊錶中的任意乙個節點都可以作為起點,可以使用這個節點遍歷整個序列。
struct node
*head=
null
;
鍊錶的一些常用運算
鍊錶中一些常用運算包括新增、刪除、更新
插入節點到鍊錶末尾
建立新的節點,遍歷到序列的末尾,插入新節點
插入過程
void
insertatend
(int value)
else
temp->next=newnode;
newnode->next=head;
}printf
("節點插入成功");
}
插入節點到鍊錶頭部
新的節點通過遍歷插入到序列的頭部
插入過程
void
insertatbeginning
(int value)
else
printf
("\n 節點插入成功");
}
插入節點到序列的任意位置
通過遍歷序列的形式的將新的節點插入到序列的指定位置
插入過程
void
insertafter
(int value,
int location)
else
else
} newnode -> next = temp -> next;
temp -> next = newnode;
printf
("\n插入節點成功");
}}
從序列尾部刪除節點
通過遍歷序列的形式,從序列中移除指定節點
移除過程
void
deleteend()
else
temp2 -> next = head;
free
(temp1);}
printf
("\n刪除節點成功");
}}
從序列頭部刪除指定節點
刪除過程
void
deletebeginning()
else
printf
("\n刪除成功");
}}
從序列中刪除指定元素
通過遍歷序列,從序列中找到目標元素,刪除
刪除過程
void
deletespecific
(int delvalue)
else}if
(temp1 -> next == head)
else
else
else
free
(temp1);}
}printf
("\n刪除成功");
迴圈鍊錶,雙向鍊錶
迴圈鍊錶 迴圈鍊錶與順序鍊錶之間的區別 迴圈鍊錶最後乙個資料的next指標域不為空,而是指向頭結點,其他基本操作大體相同,只是在判斷表結束的條件變為判斷節點的引用域是否為頭引用 雙向鍊錶 author neosong date oct 10,2017 4 43 01 pm program of in...
鍊錶之迴圈鍊錶
單向鍊錶 鍊錶之單向鍊錶 迴圈鍊錶是單向鍊錶的變化形式。單向鍊錶的尾部的指標域是空的,而迴圈鍊錶的尾部指標是指向鍊錶的頭結點的,其結構如圖一所示。圖 一循 環鏈表結 構圖一 迴圈鍊錶結構 圖一迴圈鍊錶 結構從上面結構可以看出,迴圈鍊錶的節點形成了乙個圈。在進行遍歷時,可以從任意節點開始。如果記錄了尾...
迴圈鍊錶企業鍊錶
一 特點 讓鍊錶的最後乙個結點的next指標指向頭結點。初始化小節點時直接讓next指標指向鍊錶的頭結點。二 include include include 小結點 typedef struct listnode listnode 鍊錶結點 typedef struct circularlist c...