完全二叉树的判断无响应

完全二叉树判断无响应

int Iscomple(BiTree  T)
{
Queue Q;
Q.front=Q.rear=0;
BiTree p;
if(T==NULL) return 1;
else
{
enqueue(&Q,T);
while(!Isempty(Q))
{
outqueue(&Q,p);
if(p!=NULL)        //结点不为空时,左右孩子入队
{
enqueue(&Q,p->lchild);
enqueue(&Q,p->rchild);
}
else           //否则,出队结点为空,则判断是否还有非空结点
while(!Isempty(Q))
{
outqueue(&Q,p);
if(p!=NULL)     //有非空结点则,不为完全二叉树
return 0;
}
}
}
return 1;
}

case 3:if(Iscomple(roots)==1)
                   printf("是完全二叉树\n");
                   else
                   printf("不是完全二叉树\n");



void enqueue(Queue *q,BiTree x)
{
    q->data[q->rear]=x->data;
    q->rear++;
}
int Isempty(Queue s)
{
    if(s.front==s.rear)
        return 1;
    else
        return 0;
}
void outqueue(Queue *q,BiTree *root)
{   (*root)->data==q->data[q->front];
    q->front++;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^