void completetree(BiTree root)
{
Queue s;
BiTree temp=root;
s.front=s.rear=0;
if(root==NULL)
{
printf("该二叉树为完全二叉树\n");
}
else
{
enqueue(&s,root);//入队
while(s.front!=s.rear)//队列非空
{
outqueue(&temp);//出队
if(temp!=NULL)
{ enqueue(root->lchild);
enqueue(root->rchild);
}
else
while(s->front!=s->rear)
{
outqueue(&root,&temp);
if(temp!=NULL)
{
printf("不是完全二叉树\n");
}
}
}
printf("是完全二叉树\n");
}
}
算法有点问题 如何判断已经出队的是否为空
问题在描述清楚些?