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遞迴
- c/c++ 線性表之單向迴圈連結串列C++
- 遞迴遍歷樹狀結構優雅實現遞迴
- 單鏈迴圈連結串列(初版
- 遞迴遍歷網站所有 url遞迴網站
- 連結串列4: 迴圈連結串列
- 反轉連結串列系列題練習遞迴遞迴
- 非遞迴實現先序遍歷和中序遍歷遞迴
- 02-單連結串列的操作
- C\C++之用結構體實現連結串列的建立、遍歷、結點插入、結點刪除C++結構體
- 單向連結串列————遍歷、查詢、插入結點 (基於C語言實現)C語言
- 單向迴圈連結串列大綱
- 遞迴遍歷物件獲取value值遞迴物件
- C++資料結構連結串列的基本操作C++資料結構
- 二叉樹的遍歷 → 不用遞迴,還能遍歷嗎二叉樹遞迴
- 遞迴:21. 合併兩個有序連結串列遞迴
- 資料結構之連結串列篇(單連結串列的常見操作)資料結構
- 連結串列 - 單向連結串列
- 二叉樹的四種遍歷(遞迴與非遞迴)二叉樹遞迴
- 迴圈連結串列
- 迴文連結串列
- 什麼是遍歷二叉樹,JavaScript實現二叉樹的遍歷(遞迴,非遞迴)二叉樹JavaScript遞迴
- 單向迴圈連結串列的介面程式
- 單向迴圈連結串列的實現
- 反轉連結串列(C++簡單區)C++
- C語言資料結構:單向迴圈連結串列的增刪操作C語言資料結構
- [work] python巢狀字典的遞迴遍歷Python巢狀遞迴
- 迭代及用遞迴遍歷File檔案遞迴
- 連結串列-單連結串列實現