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

2021-08-20 21:05:17 字數 1806 閱讀 6541

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

二叉樹遍歷

從上往下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。

按照層次遍歷的方法,使用佇列輔助。

1.將根結點加入佇列。

2.迴圈出隊,列印當前元素,若該結點有左子樹,則將其加入佇列,若有右子樹,將其加入佇列。

3.直到隊列為空,表明已經列印完所有結點。

功能測試(輸入的二叉樹既有左子樹又有右子樹,輸入的二叉樹僅有左子樹或右子樹,樹中僅有乙個結點)。

特殊輸入測試(輸入null指標)。

/*《劍指offer——名企面試官精講典型程式設計題》**

著作權所有者:何海濤*/

#include #include using namespace std;

struct binarytreenode

;binarytreenode* createbinarytreenode(int value)

void connecttreenodes(binarytreenode* pparent, binarytreenode* pleft, binarytreenode* pright)

}void printtreenode(binarytreenode* pnode)

else

printf("\n");

}void printtree(binarytreenode* proot)

}void destroytree(binarytreenode* proot)

}void printfromtoptobottom(binarytreenode* proot)

}// ********************測試**********************

void test(char* testname, binarytreenode* proot)

// 10

// / \

// 6 14

// /\ /\

// 4 8 12 16

void test1()

// 5

// /

// 4

// /

// 3

// /

// 2

// /

// 1

void test2()

// 1

// \

// 2

// \

// 3

// \

// 4

// \

// 5

void test3()

// 樹中只有1個結點

void test4()

// 樹中沒有結點

void test5()

int main()

/*

struct treenode

};*/

class solution

return dataprint;

}};

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

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

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

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

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

原題見於 題目描述 從上往下列印出二叉樹的每個節點,同層節點從左至右列印。輸入 輸入可能包含多個測試樣例,輸入以eof結束。對於每個測試案例,輸入的第一行乙個整數n 1 n 1000,n代表將要輸入的二叉樹元素的個數 節點從1開始編號 接下來一行有n個數字,代表第i個二叉樹節點的元素的值。接下來有n...