題目:輸入一顆二元樹,從上往下按層列印樹的每個結點,同一層中按照從左往右的順序列印。
例如輸入
8
/ /
6 10
// //
5 7 9 11
輸出8 6 10 5 7 9 11
我們增加一下難度,我們列印如下的結果:
8 6 10
5 7 9 11
看到這裡大家已經知道我們是怎麼列印的吧。按行列印。
**如下:
#include
#include
using
namespace
std;
struct bstreenode
;void addbstreenode(bstreenode *&pcurrent, int value);
void levelorderbstree(bstreenode *proot);
int main()
void levelorderbstree(bstreenode *proot)
if(pcurrent->m_pright != null)
if(pcurrent == last)
last = nlast;
}}void addbstreenode(bstreenode *&pcurrent, int value)
else
}
程式設計之美 17 求二元樹的度
題目 輸入一棵二元樹的根結點,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 輸入二元樹 8 6 10 5 7 9 11 輸出該樹的深度3。二元樹的結點定義如下 struct sbinarytreenode a node of the b...
程式設計之美 02 把二元查詢樹變成為排序的雙向鍊錶
題目 輸入一棵二元查詢樹,將該二元查詢樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只調整指標的指向。10 6 14 4 8 12 16 轉換成雙向鍊錶 4 6 8 10 12 14 16。首先我們定義的二元查詢樹節點的資料結構如下 struct bstreenode 主要考察 二叉樹的中序...
程式設計之美 3 10 分層遍歷二叉樹
1 2 3 4 5 6 7 8 運用bfs只能輸出1,2,3,4,5,6,7,8這個序列,並不知道分層資訊,因此如何分層列印呢?我的方法就是對每乙個節點做以下判斷,如果該節點在佇列中的下乙個節點是是null說明該節點是樹在某一層的最後乙個節點,將該節點的子節點輸入佇列中之後,在輸入乙個null節點。...