《劍指offer》面試題23 從上往下列印二叉樹

2021-09-30 11:07:56 字數 1280 閱讀 9343

原題見於  

題目描述:從上往下列印出二叉樹的每個節點,同層節點從左至右列印。

輸入:輸入可能包含多個測試樣例,輸入以eof結束。

對於每個測試案例,輸入的第一行乙個整數n(1<=n<=1000, :n代表將要輸入的二叉樹元素的個數(節點從1開始編號)。接下來一行有n個數字,代表第i個二叉樹節點的元素的值。接下來有n行,每行有乙個字母ci。

ci=』d』表示第i個節點有兩子孩子,緊接著是左孩子編號和右孩子編號。

ci=』l』表示第i個節點有乙個左孩子,緊接著是左孩子的編號。

ci=』r』表示第i個節點有乙個右孩子,緊接著是右孩子的編號。

ci=』z』表示第i個節點沒有子孩子。

輸出:對應每個測試案例,

按照從上之下,從左至右列印出二叉樹節點的值。

樣例輸入:

7

8 6 5 7 10 9 11

d 2 5

d 3 4zz

d 6 7

zz

樣例輸出:

8 6 10 5 7 9 11

沒什麼好說的,使用佇列即可。

#include #include #include using namespace std;

struct node

;typedef node node;

node * point_node[1010];

queuequeue_node;

void print()

if(binarynode->right)

}}void first_order(node *root)

void mid_order(node *root)

if(root->left!=null)

mid_order(root->left);

coutif(root->right!=null)

mid_order(root->right);

return ;

}int main()

char c;

int left_child,right_child;

for(int i=1;i<=n;i++)

else if (c=='l')

else if (c=='r')

else if(c=='z')

}/*first_order(point_node[1]);

cout<

劍指Offer之面試題23 從上往下列印二叉樹

所有 均通過g 編譯器 測試,僅為練手紀錄。面試題 23 從上往下列印二叉樹 題目 從上往下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。面試題23 從上往下列印二叉樹 題目 從上往下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。void treeprintbreadth...

《劍指offer》面試題23 從上往下列印二叉樹

從上往下列印出二叉樹的每個節點,同層節點從左至右列印。思路 二叉樹的層次遍歷,借助乙個佇列實現。include include include using namespace std struct treenode class bintree treenode bintree createtree ...

《劍指Offer》面試題23 從上往下列印二叉樹

劍指offer 面試題23 從上往下列印二叉樹 二叉樹遍歷 從上往下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。按照層次遍歷的方法,使用佇列輔助。1.將根結點加入佇列。2.迴圈出隊,列印當前元素,若該結點有左子樹,則將其加入佇列,若有右子樹,將其加入佇列。3.直到隊列為空,表明已經列...