完全二叉樹的判定

2021-05-27 02:03:20 字數 1115 閱讀 7819

/*

*完全二叉樹的判定:對二叉樹進行層次遍歷,在遍歷過程中對每乙個結點進行檢查:

* (1)如果當前結點沒有右子樹,則剩下的全部結點必須既沒有左子樹,又沒有右子樹;

* (2)如果當前結點有右子樹,則它必須也有左子樹.

*/#include#includetypedef struct bitnode

*bitree;

typedef struct qnode

qnode,*queueptr;

typedef struct linkqueue

*plinkqueue;

plinkqueue createemptyqueue_link(void)

else

printf("\tout of space!\n");

return p_queue;

}bool isemptyqueue_link(plinkqueue p_queue)

void enqueue_link(plinkqueue p_queue,bitree bt)

else

else

}}void dequeue_link(plinkqueue p_queue)

else }

bitree top_link(plinkqueue p_queue)

return p_queue->f->info;

}bitree createbitree(bitree bt)//先序建立二叉樹

else

bt->info=ch;//生成根結點

bt->lchild=createbitree(bt->lchild);//構造左右子樹

bt->rchild=createbitree(bt->rchild);

} return bt;

}int levelorder(bitree bt)

while(!isemptyqueue_link(p_queue))

if(null!=bt->rchild)

else

bcomfine=true;

} return flag;

}int main()

完全二叉樹的判定

2 實現 二叉樹定義 typedef struct btnode btnode typedef struct bt bt 佇列定義 typedef struct queue queue 函式定義 void premaketree bt bt btnode creatbtree btnode r 以深...

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