2 5 線性表之迴圈鍊錶

2021-09-24 15:44:02 字數 707 閱讀 8656

迴圈鍊錶就是鍊錶首尾相接連成乙個環,可以用單鏈表 和 迴圈鍊錶來實現。

下面分別來看兩種情況:

為了方便,我這裡使用帶頭結點的單鏈表來構建迴圈鍊錶,至於單鏈錶帶不帶頭結點的異同,我在前面的線性表之鍊錶那篇文章中已經做過分析,就不再贅述。

單向迴圈鍊錶是指在單鏈表的基礎上,表的最後乙個元素指向煉表頭結點,不再是為空。

所以判斷是否是最後乙個元素 的條件 也從 p->next != null; 變成了 p->next != head;

由於這個判斷 條件的變化,相比於原來的單鏈表的程式,就會在有一些地方有所變化

雙向鍊錶的程式我在前一篇也寫過,所以這裡也不再贅述了

也是把最後乙個元素的判斷條件改為:p->next != h;

然後如果是在隊尾插入或刪除元素,就需要改變頭指標的prior,

程式就都不寫了,改動並不大,知道是什麼意思即可

線性表 迴圈鍊錶

迴圈鍊錶的定義 將單鏈表中最後乙個資料元素的next指標指向第乙個元素,即把鍊錶的兩頭連線,形成了乙個環狀鍊錶,稱為迴圈鍊錶 在迴圈鍊錶中可以定義乙個 當前 指標,稱為游標,通過游標來遍歷鍊錶中所有元素 迴圈鍊錶和動態鍊錶相比,唯一的不同就是迴圈鍊錶首尾相連,其他都完全一樣 可以用兩次列印迴圈鍊錶,...

線性表 迴圈鍊錶

迴圈鍊錶解決的是如何從當前的乙個結點出發,訪問到鍊錶的全部結點。在單鏈表中,有了頭結點,可以用o 1 的時間訪問第乙個結點,但對於最後乙個結點訪問需要o n 時間,就是相當於將單鏈表全部掃瞄一遍。對於迴圈列表不用頭指標,而是用指向終端結點的尾指標來表示迴圈鍊錶,也就是最後乙個結點就是尾指標作為返回,...

線性表(一) 鍊錶之雙向迴圈鍊錶

四 雙向迴圈鍊錶的實現 template class cycdullist cycdullist 獲取鍊錶大小 size t size 判斷鍊錶是否為空 bool empty 獲取頭節點 listnode get head 獲取任意位置節點 listnode get node const int i...