数据结构之"二叉树的三种遍历方法"

1、什么是二叉树

定义:有且仅有一个根节点,每个节点只有一个父节点,最多含有两个子节点,子节点有左右之分。

2、二叉树的遍历

二叉树是一种树形结构,遍历就是要让树中的节点被且仅被访问一次,即按一定规律排列成一个线性队列。二叉树是一种递归定义的结构,包含三个部分:根节点(N)、左子树(L)、右子树(R)。根据这三个部分的访问次序对二叉树的遍历进行分类,总共有6种遍历方案:NLR、NRL 、LNR、 LRN 、RLN 、RNL 。研究二叉树的遍历就是研究这6种具体的遍历方案,显然根据简单的对称性,左子树和右子树的遍历可互换,即NLR和NRL、LNR和RNL、LRN和RLN。分别称为“先序遍历”(根左右)、“中序遍历”(左根右)和“后序遍历”(左右根)。

      

先序遍历(根左右):

  1. 从A点看起,根节点为A,记录A,左节点为B,记录B,B没有左节点,右节点为C,根据根左右原则,记录C,把C当做根节点,左子树为D,记录D,此时根节点A的左子树部分记录完成。
  2. 此时返回节点A,右子树为E,根据根左右原则,记录E,把E看做根节点,E没有左子树,记录E,右子树为F,把F看做根节点,记录F,左子树为G,没有右子树,把G看做根节点,记录G,G的左子树为H,记录H,右子树为K,记录K
  3. 因此顺序为:ABCDEFGHK

中序遍历(左根右):

  1. 从根节点A开始,左子树为B,此时把B 看做根节点,B没有左子树,返回B ,记录B,B有右子树C,把C看做根节点,C的左子树为D,记录D,返回C,记录C,C没有右子树,因此返回A,记录A
  2. 根节点A有右子树E,此时把E看做根节点,E没有左子树,返回E,记录E,E的右子树为F,把F看做根节点,F的左子树为G,G有子节点,把G看做根节点,G的左子树为H,记录H,返回G,记录G,G的右子树为K,记录K,返回G,由G返回F,记录F
  3. 中序遍历顺序为:BDCAEHGKF

后序遍历(左右根):

  1. 从根节点A开始,A的左子树为B,根据左右根原则,把B看做根节点,B没有左子树,B有右子树C,C有左子树D,记录D,C没有右子树,此时返回C,记录C,由C返回B,记录B,此时返回了根节点A,A有右子树E
  2. 此时把E看做根节点,E没有左子树,E的右子树为F,把F看做根节点,F的左子树为G,把G看做根节点,G 有左子树H,根据左右根原则,记录H,G有右子树K,记录K,由K返回G,记录G,由G返回F,F没有右子树,记录F,由F返回E,E没有左子树,因此记录E,由E返回A,记录A
  3. 后序遍历顺序为:DCBHKGFEA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值