首页 > 其他 > 详细

二叉树的按层遍历

时间:2015-09-29 22:08:33      阅读:317      评论:0      收藏:0      [点我收藏+]

常见的前序、中序、后序都很常见,最近用到了按层遍历,记录一下:

思路:用一个队列来作为辅助空间。依次存储头结点,左节点和右节点。每次循环输出节点的值,直到队列为空这样一来就利用了队列先进先出的性质实现了非递归按层遍历二叉树。

 

具体实现:

void levelOrderTraverse(const BiTree& t)
{
    queue<BiTree> q;
    BiTree p = NULL;
    
    if(t)
    {
        q.push(t);
    }
    while(!q.empty())
    {
        p = q.front();
        q.pop();
        cout<<p->data<<" ";
        if(p->lchild)//左孩子不空,入队列 
        {
            q.push(p->lchild);
        }
        if(p->rchild)//右孩子不空,入队列 
        {
            q.push(p->rchild);
        }
    } 
}

 

二叉树的按层遍历

原文:http://www.cnblogs.com/wxisme/p/4847361.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!