二叉树的前序、中序、后序遍历

二叉树的前中后序遍历:根节点的遍历位置放在最前面、中间或者后面。


前序遍历

遍历规则

  1. 先遍历根节点
  2. 再遍历左节点
  3. 最后遍历右节点

前序遍历的用例图(中——>左——>右

二叉树如图所示

先遍历根节点1

再遍历左子树

左子树的先序顺序为2——>4——>5(中——>左——>右)

最后遍历右子树

右子树的先序顺序为3——>6——>7(中——>左——>右)

最后可得出先序顺序为1——>2——>4——>5——>3——>6——>7


中序遍历

遍历规则

  1. 先遍历左节点
  2. 再遍历根节点
  3. 最后遍历右节点

 中序遍历的图解流程(左——>中——>右)

二叉树如图所示

先遍历左子树

左子树的中序顺序为4——>2——>5(中——>左——>右)

再遍历根节点1

最后遍历右子树

右子树的中序顺序为6——>3——>7(左——>中——>右)

最后可得出中序顺序为4——>2——>5——>1——>6——>3——>7


后序遍历

遍历规则

  1. 先遍历左节点
  2. 再遍历由节点
  3. 最后遍历根节点

 后序遍历的图解流程(左——>右——>中

二叉树如图所示

先遍历左子树

左子树的后序顺序为4——>5——>2(左——>右——>中)

再遍历右子树

右子树的后序顺序为6——>7——>3(左——>右——>中)

最遍历根节点1

最后可得出后序顺序为4——>5——>2——>6——>7——>3——>1


前中后序遍历的转换

已知前序和中序——————可得唯一二叉树

  • 首先根据前序(中——>左——>右)确定根节点即前序的第一个节点。
  • 根据中序(左——>中——>右)可将中序分割成左子树和右子树
  • 然后对左子树和右子树重复以上操作即可

eg:

先序顺序为1——>2——>4——>5——>3——>6——>7

中序顺序为4——>2——>5——>1——>6——>3——>7

  • 根据前序(中——>左——>右)确定根节点即1
  • 划分左子树中序顺序为4——>2——>5所以先序顺序为2——>4——>5
  • 左子树根节点为2,左节点为4,右节点为5
  • 再划分右子树中序顺序为6——>3——>7所以先序顺序为3——>6——>7
  • 右子树根节点为3,左节点为6,右节点为7

已知前序和后序——————不可得唯一二叉树

已知中序和后序——————可得唯一二叉树

  • 首先根据后序(左——>右——>中)确定根节点即后序的最后一个节点。
  • 根据中序(左——>中——>右)可将中序分割成左子树和右子树
  • 然后对左子树和右子树重复以上操作即可

eg:

后序顺序为4——>5——>2——>6——>7——>3——>1

中序顺序为4——>2——>5——>1——>6——>3——>7

  • 根据后序(左——>右——>中)确定根节点即1
  • 划分左子树中序顺序为4——>2——>5所以后序顺序为4——>5——>2
  • 左子树根节点为2,左节点为4,右节点为5
  • 再划分右子树中序顺序为6——>3——>7所以后序顺序为6——>7——>3
  • 右子树根节点为3,左节点为6,右节点为7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值