二叉树的层次遍历怎么写啊,要求以输出形式遍历,求大神指教。
#include<stdio.h>#include<stdlib.h>
#define OK 1
#define OVERFLOW -2
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreatBiTree(BiTree &T)
{
char ch;
scanf("%c",&ch);
if(ch=='#')T=NULL;
else
{
if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))exit(OVERFLOW);
T->data=ch;
CreatBiTree(T->lchild);
CreatBiTree(T->rchild);
}
}//创建
void PreOrderBiTree(BiTree T)
{
if(T)
{
printf("%c",T->data);
PreOrderBiTree(T->lchild);
PreOrderBiTree(T->rchild);
}
}//先序遍历
void InOrderBiTree(BiTree T)
{
if(T)
{
InOrderBiTree(T->lchild);
printf("%c",T->data);
InOrderBiTree(T->rchild);
}
}//中序遍历
void PostOrderBiTree(BiTree T)
{
if(T)
{
PostOrderBiTree(T->lchild);
PostOrderBiTree(T->rchild);
printf("%c",T->data);
}
}//后续遍历
void cengciBiTree(BiTree T)
{
if(T)
{
printf("%c",T->data);//这里需要写一个层次遍历的函数,求指教。
void main()
{
BiTree T;
CreatBiTree(T);
printf("先序遍历结果:");
PreOrderBiTree(T);
printf("\n");
printf("中序遍历结果:");
InOrderBiTree(T);
printf("\n");
printf("后序遍历结果:");
PostOrderBiTree(T);
printf("\n");
}