資料結構與演算法系列 樹 二叉樹的遍歷 按層次遍歷

2021-06-19 03:59:41 字數 595 閱讀 8067

按層次遍歷就是按二叉樹層次從上而下,從左到右順序訪問其各結點

演算法思想:

建立一迴圈佇列,佇列元素為指標型別變數,此迴圈佇列用來暫存二叉樹結點的指標。

在遍歷二叉樹之前,先將此樹的根節點指標送入迴圈佇列,開始層次遍歷時再將此根節點指標出隊來訪問根節點,然後判斷其左或右兒子是否存在,若存在,則將左右兒子結點的指標依次送入佇列。左兒子指標先於右兒子指標入隊。

#include#include#define queuesize 20 /*定義迴圈佇列最大容量為20*/

typedef struct nodebintnode,*bintree; /*定義二叉鍊錶指標型別*/

typedef struct cirqueuecirqueue;

void createbintree(bintree *t)

}leverorder(bintree t)

} if((q->rear+1)%queuesize ==q->front)/*隊列為滿*/

printf("the queue is full");

else

} }}main()else

}

演算法系列之二叉樹

資料結構中有一種結構是樹,不過一般我們常見的是樹中的一種特殊型別 二叉樹。二叉樹簡單來說就是每個節點最多有兩個子節點。如果每個節點都有兩個子節點,那麼我們稱這種二叉樹為滿二叉樹。還有一種二叉樹,其葉子節點都在最底下兩層,最後一層葉子節點都靠左排列,並且除了最後一層,其他層的葉子節點都要達到最大,這種...

資料結構與演算法 樹與二叉樹

樹是若干個結點組成的有限集合,其中必須有乙個結點是根結點,其餘結點劃分為若干個互不相交的集合,每乙個集合還是一棵樹,稱為根的子樹。當樹的結點個數為0時,我們稱這棵樹為空樹,記為 關於樹的基本術語 結點 表示樹中的元素,包括資料項和若干指向其子樹的分支 結點的度 結點所擁有的子樹的個數 葉子結點 度為...

演算法與資料結構 二叉樹

二叉樹 binary tree 二分樹 二元樹 二叉樹的遞迴定義 或是空樹,或是一棵由乙個根結點和左右子樹組成的樹,且左右子樹也是二叉樹。分枝結點 除葉結點以外的結點。二叉樹的性質 最多 2 h 1 個結點 n2 n0 1 滿二叉樹 所有分枝結點都存在左右子樹,且葉結點都在同一層。完全二叉樹 除最後...