C++單連結串列遞迴遍歷操作
型別分析
型別分析要分析的是單連結串列的每個節點存在的狀況
* 空節點
data | next |
---|---|
NULL | NULL |
* 非空節點
data | next |
---|---|
例如1 | address |
單連結串列中一共就只有這麼兩種節點。
演算法夏吉爾分析
如果讓你用迴圈
讓你用迴圈的話,你會怎樣寫呢?
void display(node *head){
node *p = head;
while(p){
cout<<p->data<<"->";
p = p->next;
}
}
迴圈變遞迴的分析
迴圈的情況下,你要確定的是改變成遞迴以後
* 函式跳出遞迴的條件是蛤。
* 該怎樣檢視下一個節點的資訊。
* 該什麼時候輸出資訊
只用遞迴
先程式碼
void display(node *head){
if(!head)//當head為空的時候,肯定是到達了連結串列的尾部,然後跳出,這就是傳說中的basic case
return ;
cout<<head->data<<"->";//只要當前節點不為空,那麼肯定能到達這一步然後就會進入下一個節點
return display(head->next);
}
相關文章
- 非迴圈單連結串列的建立、遍歷、排序等排序
- 雙向迴圈連結串列————遍歷、查詢、插入結點
- 單連結串列逆置遞迴演算法遞迴演算法
- 【資料結構】二叉樹遍歷(遞迴+非遞迴)資料結構二叉樹遞迴
- 遍歷二叉樹-------遞迴&非遞迴二叉樹遞迴
- js遞迴遍歷講解JS遞迴
- 單向迴圈連結串列
- 單連結串列的尾插,頭插,遍歷,查詢和插入
- 連結串列-迴圈連結串列
- Golang從合併連結串列聊遞迴Golang遞迴
- 資料結構--單連結串列的建立和遍歷(程式碼優化)資料結構優化
- 遞迴遍歷樹狀結構優雅實現遞迴
- 遞迴遍歷網站所有 url遞迴網站
- Java 資料夾遞迴遍歷Java遞迴
- PHP遞迴遍歷資料夾PHP遞迴
- python 遞迴遍歷目錄Python遞迴
- 單連結串列簡單操作一
- 單鏈迴圈連結串列(初版
- 【資料結構】遞迴實現連結串列逆序資料結構遞迴
- c/c++ 線性表之單向迴圈連結串列C++
- 遞迴演算法-不帶頭節點的單連結串列遞迴演算法
- 連結串列4: 迴圈連結串列
- 單連結串列的插入刪除操作(c++實現)C++
- 非遞迴實現先序遍歷和中序遍歷遞迴
- 反轉連結串列系列題練習遞迴遞迴
- c++實現單連結串列C++
- 遞迴遍歷物件獲取value值遞迴物件
- 二叉樹非遞迴遍歷二叉樹遞迴
- 迴圈雙連結串列的簡單操作
- 【資料結構】雙迴圈連結串列(c++)資料結構C++
- 二叉樹的遍歷 → 不用遞迴,還能遍歷嗎二叉樹遞迴
- 單向迴圈連結串列大綱
- 單向連結串列————遍歷、查詢、插入結點 (基於C語言實現)C語言
- 複習下C 連結串列操作(雙向迴圈連結串列,查詢迴圈節點)
- 02-單連結串列的操作
- C\C++之用結構體實現連結串列的建立、遍歷、結點插入、結點刪除C++結構體
- 二叉樹的四種遍歷(遞迴與非遞迴)二叉樹遞迴
- 什麼是遍歷二叉樹,JavaScript實現二叉樹的遍歷(遞迴,非遞迴)二叉樹JavaScript遞迴