面試100題 16 列印二元樹

2021-06-21 15:40:37 字數 832 閱讀 1841

題目:

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

輸入:8

/    \

6     10

/  \     /  \

5   7   9   11

輸出:8   6   10   5   7   9   11。

/*title: 16.從上到下從左到右列印二元樹

author:  gocode

date:    2012-10-17*/

#include 

#include 

using

namespace

std;  

typedef

struct

node  

bstnode;  

void

addbstnode(bstnode* &pnode, 

intkey)  

else

if(key < pnode->m_pdata)  

addbstnode(pnode->m_pleft, key);  

else

if(key > pnode->m_pdata)  

addbstnode(pnode->m_pright, key);  

else

cout<<"duplicate node is not allowed."

<

}  void

displaybstfromtopbottomleftright(bstnode* root, deque&dequeue)  

}  void

main()  

程式設計師100題 15 求二元查詢樹的映象

題目 輸入一顆二元查詢樹,將該樹轉換為它的映象,即在轉換後的二元查詢樹中,左子樹的結點都大於右子樹的結點。用遞迴和迴圈兩種方法完成樹的映象轉換。例如輸入 8 610 57911 輸出 8 10 6 119 75 定義二元查詢樹的結點為 struct bstreenode a node in the ...

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

題目 輸入一顆二元樹,從上往下按層列印樹的每個結點,同一層中按照從左往右的順序列印。例如輸入 8 6 10 5 7 9 11 輸出8 6 10 5 7 9 11 我們增加一下難度,我們列印如下的結果 8 6 10 5 7 9 11 看到這裡大家已經知道我們是怎麼列印的吧。按行列印。如下 includ...

16 輸入一顆二元樹,從上往下按層列印樹的每個結點

題目 微軟 輸入一顆二元樹,從上往下按層列印樹的每個結點,同一層中按照從左往右的順序列印。例如輸入 8 6 10 5 7 9 11 輸出8 6 10 5 7 9 11。這裡要建乙個佇列,把左右孩子入佇列,然後列印對頭節點的值!include include using namespace std s...