/*利用佇列實現二叉樹的層次遍歷*/
#include
#define maxsize 100
#define nulldata 0
typedef
char datatype;
/*二叉鍊錶型別定義*/
typedef
struct binnode
binnode,*bintree;
/*迴圈佇列型別定義*/
typedef
struct seqqueue
seqque,*seque;
/*按先序建立二叉樹*/
bintree createtree(bintree t)
return t;
}/*初始化迴圈佇列*/
void initque(seque q)
/*判佇列空*/
int emptyque(seque q)
/*入佇列*/
int enque(seque q,bintree t)
else
}/*出佇列*/
int outque(seque q)
else
}/*取佇列首元素*/
bintree gethead(seque q)
/*層次遍歷二叉樹*/
二叉樹層次遍歷(用佇列實現)
核心思想 首先根節點入隊,若佇列非空則做迴圈,若根節點有左右孩子,則左右孩子入隊,第乙個節點出隊,迴圈直到隊列為空。ifndef btree h define btree h typedef char btdatatype typedef struct binarytreenodebtnode vo...
二叉樹按層次遍歷 佇列實現
最近資料結構看的還真是噁心額,腦子不好使,演算法寫不來額 二叉樹一大堆概念性的東西,不過還是寫吧。二叉樹 binary tree 二叉樹的基本形態 二叉樹也是遞迴定義的,其結點有左右子樹之分,邏輯上二叉樹有五種基本形態 1 空二叉樹 a 2 只有乙個根結點的二叉樹 b 3 只有左子樹 c 4 只有右...
二叉樹樹的層次遍歷實現
二叉樹的所有的操作基本上都是跟遍歷相關的,二叉樹的深度遍歷 先序 中序 後序 都設計棧的操作,但是二叉樹的廣度搜尋 層次遍歷 用到的就是佇列的操作。注意一點,二叉樹的層次的遍歷要得到的結果是把所有的資訊放到乙個一維的陣列中,還是放到乙個二維的陣列中。vectorprintfromtoptobotto...