码迷,mamicode.com
首页 > 其他好文 > 详细

二叉树的按层遍历

时间:2015-09-29 22:10:27      阅读:234      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!