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個結點的二叉樹稱為滿二叉樹。說明 除葉子結點外的所有結點均有兩個子結點。所有葉子結點必須在同一層上。完全二叉樹 若設二叉樹的深度...