typedef struct Tree_node{
int data;
struct Tree_node *lchild;
struct Tree_node *rchild;
}NODE,*LINK;
//按层遍历
void LevelShow(LINK root)
{
LINK queue[N+1],p;
int front=0,rear=0; //队列首尾指针
if(root==NULL)
{
printf("树不存在,请创建!\n");
return;
}
if(root) //若树存在
{
queue[rear++]=root; //根结点进队
while(front!=rear)
{
p=queue[front++]; //出队
printf("%-2d ",p->data);
if(p->lchild) queue[rear++]=p->lchild; //若左子树不为空,则进队
if(p->rchild) queue[rear++]=p->rchild; //若右子树不为空,则进队
}
}
putchar('\n');
return;
}
用队列实现。上面是我以前写的,你改下吧!