这是我写的还请各位指教:
void bitree_sortprint(BiTree &T)
{
Queue Q; //创建一个队列
if(!T) printf("error\n");
else {
p=T;//指向根结点
EnQueue(Q,p->data);//根结点入队
if(p->lchild&&p->rchild)//左右子树都存在时
{DeQueue(Q,p->data);//出队打印
printf(p->data);
printf(p->lchild);//打印左孩子
EnQueue(Q,p->rchild);//右孩子入队
p=p->lchild;
}
else {
if(!p->lchild&&!p->rchild)//左右孩子都不存在时
{DeQueue(Q,p->data);//出队打印
printf(p->data);
}
else if(p->lchild&&!p->rchild)//左孩子存在而右孩子不存在时
{DeQueue(Q,p->data);//出队打印
printf(p->data);
EnQueue(Q,p->lchild);//左孩子入队
p=p->lchild;
}
else if(!p->lchild&&p->rchild)//右孩子存在而左孩子不存在时
{DeQueue(Q,p->data);//出队打印
printf(p->data);
EnQueue(Q,p->rchild);//右孩子入队
p=p->rchild;
}
}//else
}//else
}//void
还请楼上的两位GG,以及楼下的各位GG讨论一下~~
谢谢!~~