二叉树的遍历

目录

一、 前序遍历

二、中序遍历

三、后序遍历


     二叉树的遍历是指按照某种顺序访问二叉树中的每个节点,使每个节点被访问一次且仅被访问一次。二叉树有三种遍历方式:前序遍历、中序遍历、后序遍历。

一、 前序遍历

  前序遍历就是当你访问一个二叉树时,若该二叉树为空,则空操作;否则,

  1. 访问根节点;       
  2. 先序遍历根节点的左子树;
  3. 先序遍历根节点的右子树。

 例如 对如图1所示的二叉树进行前序遍历。

 第一步:访问根节点A。

第二步:发现A节点有左右子树,遵循先左后右的原则进入A的左子树,访问左子树根B。以B为根的子树只有右子树C,访问C。再访问以C为根的左子树D。

第三步:现在,A的左子树已经访问完了,接着进入A的右子树,访问E,以E为根的子树只有右子树F,访问F。以F为根的子树只有左子树G,访问G。然后发现以G为根的子树有左子树A和右子树I,先访问左子树A,后访问右子树I。

所以前序遍历图1所示的二叉树的顺序为ABCDEFGHI。

二、中序遍历

   中序遍历就是当你访问一个二叉树时,若该二叉树为空,则空操作;否则,

  1.  中序遍历根节点的左子树;
  2. 访问根节点;
  3. 中序遍历根节点的右子树。

 例如 对如图1所示的二叉树进行中序遍历。

 第一步:发现A节点有左右子树,遵循先左后右的原则进入A的左子树,由于A的左子树无左子树,所以访问A的左子树的根B。发现以B为根的右子树C,有以C为根的左子树D,就先访问左子树D,后访问B的右子树C。

第二步:再访问根节点A。

第三步:现在,A的左子树已经访问完了,接着进入A的右子树,访问E。以E为根的子树只有右子树F,而以F为根的子数有左子树G,且以G为根的子树有左子树H和右子树I,所以先访问左子树H,后访问F的左子树的根G,再访问右子树I,最后访问E的右子树F。

所以前序遍历图1所示的二叉树的顺序为BDCAEHGIF。

三、后序遍历

  中序遍历就是当你访问一个二叉树时,若该二叉树为空,则空操作;否则,

  1. 后序遍历根节点的左子树;
  2. 后序遍历根节点的右子树;
  3. 访问根节点。

 例如 对如图1所示的二叉树进行前序遍历。

 第一步:发现A节点有左右子树,遵循先左后右的原则进入A的左子树,虽然A的左子树无左子树,但是发现有以C为根的子树有左子树D,就先访问C的左子树D,后访问B的右子树C,最后访问A的左子树的根B。

第二步:现在,A的左子树已经访问完了,接着进入A的右子树,发现有以G为根的左子树H和右子树I,先访问G的左子树H,后访问右子树I,再访问F的左子树的根G。然后访问E的右子树F,最后访问A的右子树E。

第三步:访问根节点A。

所以前序遍历图1所示的二叉树的顺序为DCBHIGFEA。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值