-用森林的二叉鍊錶表示法
1.注意與樹的層序遍歷的區別 :(需要先入隊根節點和根節點的右兄弟)
/**3.45題 森林的層序遍歷*/
#include
using
namespace std;
typedef
char telemtype;
typedef
struct tnode
*forest;
//佇列
typedef forest qelemtype;
typedef
struct qnode
*qp;
struct queue
;void
queueinit
(queue &q)
void
enqueue
(queue &q,qelemtype &e)
bool
dequeue
(queue &q,qelemtype &e)
//建立森林
void
createforest
(forest&t,
char s,
int&i)
t=new tnode;
t->data=s[i]
;createforest
(t->fc,s,i)
;createforest
(t->ns,s,i);}
void
createforest
(forest&t,
char s)
//森林層序遍歷
void
forestlevelorder
(forest t,
void
visit
(telemtype)
)queueinit
(q);
enqueue
(q,t)
;enqueue
(q,t-
>ns)
;while
(dequeue
(q,x))}
void
visit
(telemtype e)
intmain()
forest t;
createforest
(t,s)
;forestlevelorder
(t,visit)
;}
C 樹的層序遍歷
層序遍歷的基本思路就是,1.根節點入佇列。2.根節點出隊,同時將根節點左兒子和右兒子入隊 3.結點出隊,同時將該節點的左兒子和右兒子入隊 4.重複3直到隊列為空 void layerprint struct treenode r include include fun.c struct queue ...
前序遍歷 中序遍歷 後序遍歷 層序遍歷
根據遍歷畫圖 先根據中序和前序找到每一級的所有根 最近也是在準備筆試,由於沒有系統的學過資料結構,所以每次在考到二叉樹的遍歷的時候都是直接跪,次數多了也就怒了,前些天也是準備 沒時間整這些,現在提交了,算是稍微輕鬆點了,所以花了半天的時間來學了下二叉樹。現在記下來,以便後序查閱。一 二叉樹的遍歷概念...
層序遍歷的巧用
給定乙個僅包含數字0 9 0 9 的二叉樹,每一條從根節點到葉子節點的路徑都可以用乙個數字表示。例如根節點到葉子節點的一條路徑是1 2 3,那麼這條路徑就用123 來代替。找出根節點到葉子節點的所有路徑表示的數字之和 這顆二叉樹一共有兩條路徑,根節點到葉子節點的路徑 12 根節點到葉子節點的路徑 1...