資料儲存在儲存器中一般按順序結構,鏈結儲存,雜湊儲存,索引儲存這四種儲存方式儲存,本篇文章只展示順序儲存的樹格式,並遍歷該種格式的樹。
遞迴思想:遞迴思想最簡單的理解就是自己呼叫自己,直到不滿足條件才跳出遞迴,所以判斷條件和自身呼叫時是遞迴兩大不可缺少的東西。
順序儲存的二叉樹特點:採取順序儲存的二叉樹必須是完全二叉樹,因為一般按照按行儲存,所以需要為完全二叉樹。
案例:假設有這樣的一顆棵樹(如下)。
定義乙個按行儲存的陣列(8-4-11-1-6-9-16),**如下;
public
int[
]gettree()
;return data;
}
前、中、後序遍歷只需改變根節點輸出位置就可以實現前、中、後序遍歷
public
void
scantree
(int i)
system.out.
println
(arraytree2[i]);
//根節點if(
(i*2+1
)(i*2+2)}
總**:
public
class
treenode
}class
tree
//無引數構造方法
public
int[
]gettree()
;return data;
}public
void
scantree
(int i)
system.out.
println
(arraytree2[i]);
//根節點if(
(i*2+1
)(i*2+2)}}
該樹的遞迴呼叫邏輯:
第一次8,滿足條件向下
第二次4,滿足條件向下
第三次1,不滿足條件,無法向下
第四次輸出1
第五次1,不滿足條件,返回4層
第六次輸出4
第七次6,不滿足條件,無法向下
第八次輸出6
第九次6,不滿足條件,返回8層
第十次輸出8
第十一次11,滿足條件向下
第十二次9,不滿足條件,無法向下
第十三次輸出9
第十四次9,不滿足條件,返回11層
第十五次輸出11
第十六次16,不滿足條件,無法向下
第十七次輸出16
第十八次16,不滿足條件,結束。
遞迴遍歷樹
其實就是業務驅動成長,因為昨天給的乙個介面是涉及多級架構的,也就是一級結構下面可以有多個二級架構,二級下面還可以有多個 因為不能確定下面到底有多少級,而又需要把所有組織遍歷出來放在 中展示。類似這種 一開始沒考慮什麼多級,用了for遍歷,後來一想,不對呀,不能確定有多少個的,不能這樣遍歷。然後問了一...
專案二 二叉樹遍歷的遞迴思想
問題及 2015,煙台大學計算機與控制工程學院 完成日期 2015年11月2日 問題描述 實現二叉樹的先序 中序 後序遍歷的遞迴演算法,並對用 a b d,e h j,k l,m n c f,g i 建立的二叉樹進行測試。1 標頭檔案 ifndef btree h included define b...
樹的遍歷遞迴非遞迴
1先序 遞迴 class solution public void b list list,treenode tree 非遞迴 class solution else return list 2中序 遞迴 class solution public void b list list,treenode...