算法思想:利用层次遍历思想
设置一个队列
1、将每层节点入队包括空节点
2、遍历对列元素,当节点为空时,则判断队列中剩下是否有节点 若有则不是完全二叉树否则是完全二叉树
int judgement(BiNode *root)
{
Bitree Q[1000];
if(root==NULL)
return 1;
int front=0,rear=0;
Q[rear++]=root;
if(front != rear)
{
BiNode *p;
p=Q[front++];
if(p!=NULL)
{
Q[rear++]=p->lchild;
Q[rear++]=p->rchild;
}
else
{
while(front!=rear)
{
p=Q[front++];
if(p!=NULL)
return 0;
}
}
}
}