迴圈鍊錶的建立

2021-10-24 22:26:00 字數 1201 閱讀 9517

迴圈鍊錶的建立以及基本操作

上篇我們講了運用頭插法和尾插法建立單鏈表的方法,和兩種方法的比較。 接著我們學習迴圈鍊錶的建立。

只要學會了單鏈表的建立,迴圈鍊錶的建立就變得很簡單。

迴圈鍊錶建立

單鏈表的結構:

迴圈鍊錶:

所謂迴圈鍊錶,就是將單鏈表的尾結點 end 的指標域 也就是 end->next 指向頭結點的位址 : end->next = head 。 這樣就完成了迴圈鍊錶的建立。

這就完了? 當然沒有那麼簡單了~~~

迴圈鍊錶不同於單鏈表,原因在於上篇我們講單鏈表的時候,尾結點指標域的指向永遠是 null,也就是 end->next = null。 因此判斷單鏈表結束的標誌,就是 while( node->next != null) ,但是迴圈鍊錶的尾結點指向的不是 null ,而是 頭結點 head。因此,我們判斷的標準也要改變。

思考過後,決定將頭結點的資料域賦值為 -1,這樣就有了乙個標誌,用來判斷是否將迴圈鍊錶執行完一次。

思而不學則殆,即刻上手!

linklist creat_list

(linklist head)

end->next = head;

// 將尾結點的指標指向頭結點

return head;

}

這就完成了迴圈鍊錶的建立,接下來我們要想辦法讓迴圈鍊錶按照我們預想來執行迴圈的次數。

思前想後,想出了這個函式來判斷乙個迴圈鍊錶內的結點數。

int

node_number

(linklist *head)

return count +1;

// 因為第一次執行迴圈之前,跳過了頭結點,因此得到的count 沒有算頭結點,返回的時候我們加上1

}

這樣我們便得到了迴圈鍊錶的結點個數。

只要有了結點個數,我們就可以根據我們的需求來執行輸出迴圈鍊錶所有結點的次數。

void

illustrate

(linklist head)

}

迴圈鍊錶的建立 帶頭結點

1.迴圈鍊錶與單鏈表的區別 1 初始化的時候,頭結點的next指向它自己 2 判斷條件上,由p null更換為p l 3 更新尾結點的時候,要由null改為 l 專案名稱 迴圈鍊錶的建立與基本操作 編譯環境 vc 2008 作者相關 最後修改 2019.5.31 學習目標 1.掌握迴圈鍊錶的基本操作...

C 建立單迴圈鍊錶

前幾天的培訓作業,讓我用c 語言來建立乙個單迴圈鍊錶,這個以前在講資料結構的時候有學過,不過那時候用的是c,其中用到的是指標,而在c 裡面沒有了指標,那在c 裡面要怎麼建立乙個單迴圈鍊錶呢?其實在建立乙個新的物件的時候,我們就可以把他理解為乙個指標,c 中並不是說不能用指標,而是將他封裝了起來,對使...

迴圈雙向鍊錶的建立方法 最簡單的迴圈雙向鍊錶

首先講迴圈鍊錶,簡單來說就是讓鍊錶首尾相連,形成乙個環,因為一般的鍊錶都是單向的,任意給出的乙個節點是不能訪問前面的鏈節,這就導致了單向鍊錶的侷限性,迴圈鍊錶從一定程度上來說就解決了這一問題,通過表頭指標的移動,因為環的特性,可以訪問完整個鍊錶 但是我們不禁會想,如果只是為了訪問已知鏈節的前乙個節點...