程式設計之美 07 層序列印二元樹,每層列印一行

2021-07-23 20:40:22 字數 744 閱讀 6855

題目:輸入一顆二元樹,從上往下按層列印樹的每個結點,同一層中按照從左往右的順序列印。

例如輸入

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節點。...