從頂層開始逐層列印二叉樹節點資料

2021-06-08 04:52:11 字數 1045 閱讀 4473

從頂層開始逐層列印二叉樹節點資料

6       14

4    8   12   16

逐層列印的結果為  10  6  14  4  8 12  16

採用佇列的方式 ,先把根節點存入佇列,然後再出列,輸出這個資料。如果有左子樹,把左子樹根節點入列,如果右子樹不為空,把右子樹的根節點入列,然後如果佇列不為空,則出列。直到隊列為空。

void  print(treenode * root)

queuetree; //宣告乙個樹節點的佇列

treenode tmp = null;

tree.push(root);  //首先把根節點入列

while( ! tree.empty())

tmp = tree.front();

tree.pop();

(*visit)(tmp);

if(tmp->left != null)

tree.push(tmp->left);

if(tmp->right != null)

tree.push(tmp->right);

void visit(treenode *node)

printf("%d",node->data);

#include //#include #include using namespace std;

typedef struct btreenode

node;

void create(node *&r ,int m)

else

if(mdata)

} }void print(node *r)

if(p->right)

}} jingxiang(node *&r)

node *p = r;

p = r->left;

r->left = r->right;

r->right = p;

if(r->left)

if(r->right) }

void main()

列印二叉樹節點

從上往下列印出二叉樹的每個節點,同層節點從左至右列印。條件反射地想通過遞迴解決,結果硬是沒有找到合適的解決思路,也許遞迴的方式不是很適合這種型別的題目吧 利用佇列的先進先出 fifo 特性解決。每從佇列頭部獲取乙個節點,就將該節點的左右子節點存入佇列的尾部。如此往復,直至隊列為空。這篇部落格內的和 ...

完全二叉樹節點數

題目 給定一棵完全二叉樹的頭節點head,返回這棵樹的節點個數。如果完全二叉樹的節點數為n,請實現時間複雜度低於o n 的解法。方法 1 遞迴o n 演算法 int nodenum struct treenode head return 1 nodenum head left nodenum hea...

完全二叉樹節點數

給定一棵完全二叉樹的頭節點head,返回這棵樹的節點個數。如果完全二叉樹的節點數為n,請實現時間複雜度低於o n 的解法。package main import nc tools type treenode struct param head treenode類 return int整型 func ...