二叉樹的層次遍歷

2021-07-13 09:27:15 字數 874 閱讀 7638

二叉樹從上到下遍歷:

利用棧,先將根節點壓入棧中,出棧,遍歷該節點的左孩子,右孩子,依次把該節點的右孩子,左孩子壓入棧中。

#include#includeusing namespace std;

struct binarytreenode

int _value;

binarytreenode* _left;

binarytreenode* _right;

};class binarytree

void pre()//前序遍歷

void floor_print()//層次遍歷

private:

binarytreenode* _create(int* a,int &index,int len)

return root;

} void preorder(binarytreenode* root)

cout<_value<<"->";

preorder(root->_left);

preorder(root->_right);

} void floor(binarytreenode* root)  //依次將根節點入棧,然後出棧,遍歷節點的左孩子,右孩子,\

然後將該節點的右孩子入棧,左孩子入棧。

stacks1;

s1.push(root);

cout<_value<<"->";

while(!s1.empty())

}private:

binarytreenode* _root;

};int main()

; binarytree b1(a,sizeof(a)/sizeof(a[0]));

b1.pre();

cout<

層次遍歷二叉樹

問題 假定根節點位於第0層 1.層次遍歷二叉樹 每層換行分開 2.層次遍歷二叉樹指定的某層 本文 例如 上圖中1.123 4567 82.第三層 78可以看出得出第二問的解,第一問迎刃而解了,所以從問題二下手 1.層次遍歷二叉樹指定的某層 可以得出這樣的乙個結論 遍歷二叉樹的第k層,相當於遍歷二叉樹...

二叉樹層次遍歷

題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。思路 二叉樹的層次遍歷,利用棧的先進後出的特性。struct treenode class solution res.push back temp while m.empty m中是從左往右入棧,這裡把它反過來,s中是從右往左...

二叉樹層次遍歷

層次遍歷二叉樹,每一次儲存在list中,結果按從葉子層到根,從左到右的順序儲存 一 class solution return lists 相當於在先序的基礎上改進,level是每個node所在的層次。如果lists大小和level相等,說明開始新一層的儲存。如果不等,則直接把值存入相應層次的lis...