面試題23 從上往下列印二叉樹

2021-06-17 00:45:02 字數 813 閱讀 5926

/*不管是廣度優先遍歷乙個有向圖還是一棵樹,都要用到佇列,第一步把起始結點(對樹而言是根結點)放入到佇列中,

接下來每一次從佇列頭部提取出乙個結點,遍歷這個結點之後把從它能到達的結點(對樹而言是子結點)都依次放入到佇列,

我們重複這個遍歷過程,直到佇列中的結點全部被遍歷為止

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

#include #include using namespace std;

//定義二叉樹結點

struct binarytreenode

;//建立二叉樹結點

binarytreenode *createtreenode(int ival)

//連線二叉樹結點

void connectbinarytreenodes(binarytreenode *proot, binarytreenode *pleft, binarytreenode *pright)

//從上到下列印二叉樹

void printfromtoptobottom(binarytreenode *prootnode)

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

//*****=測試用例*****=

/* 8

/ \

6 10

/ \ / \

5 7 9 11

*/void test1()

//輸入為空

void test2()

int main()

面試題23 從上往下列印二叉樹

題目 從上往下列印二叉樹的每個節點,同一行的節點按照從左到右列印。示例 標頭檔案 binarytree.h pragma once includestruct binarytreenode binarytreenode createbinarytreenode int value void conn...

面試題27 從上往下列印二叉樹

題目 從上往下列印出二叉樹的每個結點,同一層的結點按照從左往右的順序列印。邊界條件 root為空 思路 這其實是廣度優先演算法,要用到佇列。首先將root結點入佇列。當佇列不為空時,下面一直迴圈。取佇列front的乙個結點,輸出其value,出佇列。將上一步取出的結點左結點入佇列,然後右結點入佇列。...

面試題32 從上往下列印二叉樹

題目 從上往下列印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。include include include include include include using namespace std struct binarytreenode void printfromtoptobott...