二叉樹 層次遍歷

2021-10-19 14:09:43 字數 1163 閱讀 5342

二叉樹的層次遍歷

原理佇列實現:利用佇列的性質先入先出

遍歷從根節點開始 首先根節點入佇列

開始迴圈 結點出佇列 訪問該節點 將結點的左右子樹按 左子樹 右子樹順序入佇列

完整**

#include

#include

typedef

char elmenttype;

typedef

struct tnodetnode;

typedef tnode* tree;

typedef

struct qnodeqnode;

typedef qnode *queue;

queue creatqueue

(int max)

;tree createtree()

;void

preoreder

(tree t)

;void

levelorder

( tree t)

;int

addqueue

(queue q,tree t)

;int

isempty

(queue q)

;tree deleteq

(queue q)

;int

main()

tree createtree()

//返回根結點的位址

else

return root;

//返回根節點

}void

levelorder

( tree t)

}queue creatqueue

(int max)

//初始化佇列q 返回佇列q

intaddqueue

(queue q,tree t)

//將tree型別的值 入佇列

else

}tree deleteq

(queue q)

//刪除佇列頭部結點 返回值

else

}int

isempty

(queue q)

else

return0;

}void

preoreder

(tree t)

else

}

層次遍歷二叉樹

問題 假定根節點位於第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...