美文网首页C语言算法一角架构算法设计模式和编程理论程序员
学过二叉树的遍历吗?非递归算法之二叉树层次遍历

学过二叉树的遍历吗?非递归算法之二叉树层次遍历

作者: C语言基础 | 来源:发表于2019-03-15 15:27 被阅读4次

    二叉树层次遍历

    按照二叉树中的层次从左到右依次遍历每层中的结点。具体的实现思路是:通过使用队列的数据结构,从树的根结点开始,依次将其左孩子和右孩子入队。而后每次队列中一个结点出队,都将其左孩子和右孩子入队,直到树中所有结点都出队,出队结点的先后顺序就是层次遍历的最终结果。

    图1 二叉树

    层次遍历的实现过程

    例如,层次遍历图 1 中的二叉树:

    首先,根结点 1 入队;

    根结点 1 出队,出队的同时,将左孩子 2 和右孩子 3 分别入队;

    队头结点 2 出队,出队的同时,将结点 2 的左孩子 4 和右孩子 5 依次入队;

    队头结点 3 出队,出队的同时,将结点 3 的左孩子 6 和右孩子 7 依次入队;

    不断地循环,直至队列内为空。

    实现代码

    二叉树构造是手动构建,代码就不展示了 行文不易,新手上路,多多关注,这真的对我很重要,私信更有惊喜

    相关文章

      网友评论

        本文标题:学过二叉树的遍历吗?非递归算法之二叉树层次遍历

        本文链接:https://www.haomeiwen.com/subject/bhxrmqtx.html