完全二叉树判断无响应
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++;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: