美文网首页
二叉树的遍历

二叉树的遍历

作者: 我有一只碗 | 来源:发表于2018-01-29 14:00 被阅读0次

二叉树的常见遍历方式有三种

// 二叉树的二叉链表存储结构
typedef struct BiNode
{
    int data;
    struct BiNode *left_child, *right_child;
} BiNode, *BiTree
  1. 前序遍历
// 二叉树的前序遍历
void pre_traversal(BiTree t)
{
    if (t == NULL)
    {
        return;
    }
    printf("%d", t->data);
    pre_traversal(t->left_child);
    pre_traversal(t->right_child);
}
  1. 中序遍历
// 二叉树的中序遍历
void in_traversal(BiTree t)
{
    if (t == NULL)
    {
        return;
    }
    in_traversal(t->left_child);
    printf("%d", t->data);
    in_traversal(t->right_child);
}
  1. 后序遍历
// 二叉树的后序遍历
void post_traversal(BiTree t)
{
    if (t == NULL)
    {
        return;
    }
    post_traversal(t->left_child);
    post_traversal(t->right_child);
    printf("%d", t->data);
}
二叉树

对于上图所示的二叉树
前序遍历结果为:0、1、3、4、2、5、6
中序遍历结果为:3、1、4、0、5、2、6
后序遍历结果为:3、4、1、5、6、2、0

已知前序遍历结果和中序遍历结果可以确定一棵二叉树
已知后续遍历结果和中序遍历结果可以确定一棵二叉树
已知前序和后序遍历结果不能确定一棵二叉树

比如已知前序遍历结果为ABC,后序遍历结果为CBA,这样只能知道A为根节点,B在第二层,C在第三层,具体B在左在右与C在左在右都不能确定。

相关文章

  • 二叉树 基础操作

    二叉树的使用 二叉树结构 先序创建二叉树 DFS 先序遍历二叉树 中序遍历二叉树 后序遍历二叉树 BFS 层次遍历...

  • 二叉树遍历

    二叉树 二叉树的存储结构 前序遍历 中序遍历 后序遍历 遍历代码 反转二叉树 深入学习二叉树 二叉树-你必须要懂!...

  • 二叉树操作

    树节点 逐行顺序解析二叉树 前序遍历二叉树 中序遍历二叉树 后序遍历二叉树 删除指定数值的节点 前序遍历顺序存储的...

  • 关于二叉树的算法题

    前序遍历中序遍历后序遍历判断是否是平衡二叉树判断是否是对称二叉树判断二叉树高度按照层遍历二叉树判断二叉树宽度

  • 二叉树三种遍历Swift代码实现

    二叉树的三种遍历 二叉树 前序遍历 中序遍历 后序遍历 另外 不得不说,得到二叉树的前序遍历和中序遍历的结果或者后...

  • 数据结构与算法之二叉树遍历(七)

    目录 前序遍历中序遍历后序遍历层序遍历遍历方式的选择条件根据遍历结果重构二叉树翻转二叉树计算二叉树的高度判断一棵树...

  • 二叉树的遍历

    二叉树的遍历 二叉树遍历 分为前序遍历、中序遍历和后序遍历。 前序遍历 (DLR) 先访问根节点,然后前序遍历左子...

  • 数据结构:树的实现和遍历(c++)

    (一)二叉树的遍历——递归实现 二叉树常见的遍历方式分为前序遍历、中序遍历和后序遍历。 1 前序遍历 前序遍历也叫...

  • 二叉树的蛇形层次遍历(LeetCode.103)

    题目 解析 首先参考二叉树的层次遍历层次遍历二叉树(LeetCode--102二叉树的层次遍历)[https://...

  • 算法精选题总结之二叉树类

    1.二叉树的中序遍历中序遍历的迭代方法中序遍历的递归方法2.二叉树前序遍历3.二叉树后续遍历4.二叉树的最近公共祖...

网友评论

      本文标题:二叉树的遍历

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