层次遍历可以概括为"先上后下,先左后右"的次序访问。
二叉树的有根性和有序性是层次遍历可以定义的基础.同时也是二叉树可以建立和其它遍历的基础。
实现
#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
typedef struct node
{
struct node *lc;
struct node *rc;
char date;
}bintree,*tree;
void createtree(tree &T)
{
char c;
cin>>c;
if(c=='#')
T=NULL;
else{
T=new bintree;
T->date=c;
createtree(T->lc);
createtree(T->rc);
}
}
void cprint(tree T)
{
queue<tree> q;
q.push(T);
while(!q.empty()){
T=q.front();
q.pop();
cout<<T->date;
if(T->lc) q.push(T->lc);
if(T->rc) q.push(T->rc);
}
}
int main()
{
tree T;
createtree(T);
cprint(T);
cout<<endl;
}