数据结构之树(二)——二叉树(3 二叉树的遍历)

遍历的含义

  • 遍历含义: 顺着某一条搜索路径巡访二叉树中的结点,使得每个结点均被访问依次,而且仅被访问一次,又称周游。

    • “访问”的含义很广,可以是对结点作各种处理,如:输出结点的信息,修改结点的数据值等,但要求这种访问不能破坏原来的数据结构。
  • 遍历目的: 得到树中所有结点的一个线性排列,以便于后续操作。

  • 遍历用途: 它是插入、删除、修改、查找和排序运算的前提,是二叉树一切运算的基础和核心。



二叉树遍历方法

  • 遍历方法总述
    因为二叉树是一个递归的定义,一棵二叉树可以分为3个部分,即根结点+左子树+右子树。所以依次遍历二叉树中的三个组成部分,便是遍历了整个二叉树。
    这里,假设:
    L:遍历左子树
    D:访问根结点
    R:遍历右子树
    则遍历整个二叉树的方案共有6种,即DLR、LDR、LRD、DRL、RDL、RLD。 因为二叉树的对称结构,所以前三种和后三种一样,若规定先左后右,则只有前三种情况:

    • DLR——先序遍历(先根遍历)
    • LDR——中序遍历(中根遍历)
    • LRD——后序遍历(后根遍历)
  • 先序遍历

    • 算法描述
      若二叉树为空,则空操作;否则
      • 访问根结点
      • 先序遍历左子树
      • 先序遍历右子树
    • 例子
      在这里插入图片描述
      在这里插入图片描述
  • 中序遍历

    • 算法描述
      若二叉树为空,则空操作;否则
      • 中序遍历左子树
      • 访问根结点
      • 中序遍历右子树
    • 例子
      在这里插入图片描述
      在这里插入图片描述
  • 后序遍历

    • 算法描述
      若二叉树为空,则空操作;否则
      • 后序遍历左子树
      • 后序遍历右子树
      • 访问根结点
    • 例子
      在这里插入图片描述
      在这里插入图片描述
  • 两个例题
    在这里插入图片描述
    在这里插入图片描述



由遍历序列确定二叉树

  • 若二叉树中各结点的值均不相同,则二叉树结点的先序遍历、中序遍历和后序遍历序列都是唯一的。
  • 由二叉树的先序序列和中序序列,或者由二叉树的后序序列和中序序列可以确定唯一一棵二叉树。

具体这部分内容,可以参考王卓老师的讲解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值