二叉树层序遍历
其中,使用先序建立二叉树
//writer:yaojinhui
#include <iostream>
using namespace std;
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void createBiTree(BiTree &T)
{
char ch;
cin>>ch;
if(ch=='#')
T=NULL;
else
{
T=new BiTNode;
T->data=ch;
createBiTree(T->lchild);
createBiTree(T->rchild);
}
}
void Level(BiTree T)
{
if(T)
{
BiTree Q[100];
int front,rear,last;
front=rear=last=1;
Q[rear]=T;
while(front<=last)
{
BiTree p;
p=Q[front++];
cout<<p->data;
if(p->lchild)
{
Q[++rear]=p->lchild;
last++;
}
if(p->rchild)
{
Q[++rear]=p->rchild;
last++;
}
}
cout<<endl;
cout<<"节点个数为:"<<last<<endl;
}
}
int main()
{
BiTree T;
createBiTree(T);
Level(T);
return 0;
}