/*
层次遍历,栈中存放当前节点之后部分节点。一旦遇到空节点,若栈中含非空结点,则不是完全二叉树。
*/
bool IsComplete(BiTree T){
InitQueue(Q);
if(!T)
return true; //空树也为满二叉
EnQueue(Q,T);
while(!IsEmpty(Q)){
DeQueue(Q,p);
if(p){
EnQueue(Q,p->lchild);
EnQueue(Q,p->rchild);
}
else{
while(!IsEmpty(Q)){
DeQueue(Q,p);
if(p) //栈含非空结点
return false;
}
}
}
return true;
}
判别二叉树是否为完全二叉树
最新推荐文章于 2024-06-06 21:11:37 发布