C 森林的層序遍歷

2021-10-04 19:05:35 字數 1247 閱讀 1763

-用森林的二叉鍊錶表示法

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...