樹的層序遍歷

2022-05-06 02:12:08 字數 1105 閱讀 5875

層序遍歷的基本思路就是,

1.根節點入佇列。

2.根節點出隊,同時將根節點左兒子和右兒子入隊

3.結點出隊,同時將該節點的左兒子和右兒子入隊

4.重複3直到隊列為空

void layerprint(struct treenode* r)

}

#include#include "fun.c"

struct queue

;struct stack

;struct treenode* pop(struct stack* a)

int isempty(struct stack* a)

void push(struct stack* a,struct treenode *node)

void preprint(struct treenode *r)

else

}} /*while(p!=null)

else

p = tmp->right;

} } //push(&stack1,r);

//pop()*/

/*void layerprint(struct treenode* r)

*/void in(struct queue* a,struct treenode* b)

struct treenode* out(struct queue* a)

void layerprint(struct treenode* r) }

int main()

node;

struct treenode* inittree()

void createtree(struct treenode* r)

else

}if(a->data>=p->data)

else }

struct treenode* insert(struct treenode* r,int num)

else

else

return r; }}

void preordersearch(struct treenode* r)

}

C 樹的層序遍歷

層序遍歷的基本思路就是,1.根節點入佇列。2.根節點出隊,同時將根節點左兒子和右兒子入隊 3.結點出隊,同時將該節點的左兒子和右兒子入隊 4.重複3直到隊列為空 void layerprint struct treenode r include include fun.c struct queue ...

樹的遞迴,非遞迴,層序遍歷

長期以來,很多同學對數的遍歷都有一定的恐懼,其實多練練,多研究,發現是不難的,現在我來把數的構建,遞迴遍歷和非遞迴遍歷為大家整理一下,所有的 均為我自己敲出來的,並且經過了測試,希望給大家乙個參考,若有不足之處,歡迎指出交流。首先我把數存在陣列中,字子樹為空,則用 代替,根據這個陣列建立二叉樹的,然...

N叉樹的層序遍歷(OJ)

題目描述 給定乙個 n 叉樹,返回其節點值的層序遍歷。即從左到右,逐層遍歷 例子 給定乙個三叉樹 返回其層序遍歷 1 3,2,4 5,6 我的思路如下 用乙個佇列,並用乙個標誌性的字元將二叉樹每一層的結點分開 比如nullptr 然後一層一層插入到vector中,如果遇到nullptr,則重新插入n...