二叉树的遍历

二叉树的遍历,第1张

二叉树的遍历

目录

一、 前序遍历

二、中序遍历

三、后序遍历


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

一、 前序遍历

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

  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。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5597929.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存