完全二叉樹的判定

2021-10-10 08:44:38 字數 1584 閱讀 9599

2、**實現

//二叉樹定義

typedef

struct btnode btnode;

typedef

struct bt bt;

//佇列定義

typedef

struct queue queue;

//函式定義

void

premaketree

(bt* bt)

;btnode*

creatbtree

(btnode *r)

;//以深度優先構造二叉樹

void

output

(bt* bt)

;//輸入二叉樹

void

preoutput

(btnode* r)

;void

isqtree

(bt* tree)

;//判斷是否是完全二叉樹

//主函式

void

main()

//以深度優先構造二叉樹

btnode*

creatbtree

(btnode *r)

return r;

}void

premaketree

(bt* bt)

//判斷是否是完全二叉樹

void

isqtree

(bt *tree)

int temp = front;

//將孩子結點入隊

if(q[temp]

.q->lchild)

//左孩子入隊

if(q[temp]

.q->rchild)

//右孩子入隊if(

!q[temp]

.q->lchild)

//沒有左孩子if(

!q[temp]

.q->rchild)

//沒有右孩子

front = front +1;

}int flag =0;

for(

int i =

0; i < ans.

size()

; i++)}

for(

int i = flag; i < ans.

size()

; i++)}

printf

("結果:是完全二叉樹");

return

;}

3、測試用例

測試用例1:

程式執行結果:

測試用例2:

執行結果:

完全二叉樹的判定

完全二叉樹的判定 對二叉樹進行層次遍歷,在遍歷過程中對每乙個結點進行檢查 1 如果當前結點沒有右子樹,則剩下的全部結點必須既沒有左子樹,又沒有右子樹 2 如果當前結點有右子樹,則它必須也有左子樹.include includetypedef struct bitnode bitree typedef...

王道5 3 7完全二叉樹的判定

給定乙個二叉樹,確定它是否是乙個完全二叉樹。若設二叉樹的深度為 h,除第 h 層外,其它各層 1 h 1 的結點數都達到最大個數,第 h 層所有的結點都連續集中在最左邊,這就是完全二叉樹。注 第 h 層可能包含 1 2h 個節點。示例 1 輸入 1,2,3,4,5,6 輸出 true 解釋 最後一層...

二叉樹,完全二叉樹,滿二叉樹

二叉樹 是n n 0 個結點的有限集合,它或者是空樹 n 0 或者是由乙個根結點及兩顆互不相交的 分別稱為左子樹和右子樹的二叉樹所組成。滿二叉樹 一顆深度為k且有2 k 1個結點的二叉樹稱為滿二叉樹。說明 除葉子結點外的所有結點均有兩個子結點。所有葉子結點必須在同一層上。完全二叉樹 若設二叉樹的深度...