目录
下一篇: 由遍历序列构造二叉树
示例:
算法思路:
1、初始化一个辅助队列
2、根结点入队
3、若队列非空,则队头结点出队,访问该节点,并将其左孩子、右孩子插入队尾(如果有的话)
4、重复3直至队列为空
层序遍历
void LevelOrder(BiTree T){
std:: queue<BiTree> Q;//使用STL中的Queue
BiTree p;//用队列保存结点的指针比保存结点本身需要的空间会少很多
//入队
Q.push(T);
while(!Q.empty()){
//取队首结点
p=Q.front();
Q.pop();
//访问队首结点
visit(p);
if(p->lchild!=NULL)
Q.push(p->lchild);//左孩子入队
if(p->rchild!=NULL)
Q.push(p->rchild);//右孩子入队
}
}