二叉樹的層序遍歷(c語言)

2021-08-21 11:14:04 字數 1323 閱讀 1293

ps:2018/7/15

自己花了一晚上的時間寫的二叉樹的層序遍歷,但是感覺有點小瑕疵,各位大佬幫忙看看

moni.h

#ifndef _moni_h

#define _moni_h

struct cenxu;

struct queue;

typedef struct cenxu * abc;

typedef struct queue * adf;

void initqueue(adf q);//初始化佇列

void shuchushihua(abc p);//初始化樹

abc dequeue(adf q);//刪除佇列元素

int emptyqueue(adf q);//判斷佇列是否為空

void inqueue(adf q,abc p);//插入到佇列

abc creat(abc p);//把元素插入到樹中

void ceng(adf q, abc p);//層序遍歷

#endif // !_moni_h

moni.cpp

# include# include # include "moni.h"

#include "malloc.h"

# define max 100

struct cenxu

;struct queue

;typedef struct cenxu * abc;

typedef struct queue * adf;

void shuchushihua(abc p)//初始化樹

void initqueue(adf q)//初始化佇列

} }

abc dequeue(adf q)//刪除佇列元素

int emptyqueue(adf q)//判斷佇列是否為空

else }

abc creat(abc p)//把元素插入到樹中

else

return p;

}void inqueue(adf q, abc p)//插入到佇列

else

q->k[(q->rear)++] = p;

}void ceng(adf q, abc p)//層序遍歷

while (!emptyqueue(q))

if (p->rchild != null)

}}

main.cpp

# include "malloc.h"

#include int main(void)

二叉樹層序遍歷 求二叉樹的層序遍歷

給定乙個二叉樹,返回該二叉樹層序遍歷的結果,從左到右,一層一層地遍歷 例如 給定的二叉樹是,該二叉樹層序遍歷的結果是 3 9,20 15,7 示例1 輸入 返回值 1 2 示例2輸入 返回值 1 2,3 4,5 解題思路 重點是如何把在一層的節點放到一起,設定乙個引數專門放一層的節點 class t...

c 二叉樹的層序遍歷 二叉樹的層序遍歷及應用

二叉樹的遍歷實質問題就是,將二維結構線性化。深度優先遍歷對應的是前序 中序 後續遍歷 廣度優先對應的是層序遍歷。看完後閉著眼寫出二叉樹的四種遍歷結果 這篇文章從形象化方面描述了深度優先遍歷 當我們說遞迴時,到底是在說什麼 這篇文章則詳細分析了前序遍歷對棧的使用過程。今天深入學習一下層序遍歷,層序遍歷...

C語言 層序遍歷二叉樹(遞迴)

層序遍歷意思就是按照從上往下,從左往右的順序遍歷二叉樹的元素。實現二叉樹的層序遍歷需要用到二叉樹和佇列。總體思路 判斷當前佇列是否為空 隊列為空 結束。佇列非空 取出佇列第乙個元素 將取出的元素的兩個子節點依次入隊 用自定義的initq函式建立乙個空佇列 隨後我們將二叉樹的根節點 比如這裡是3 放入...