二叉树学习

二叉树

1.前序遍历(先序遍历)

		根节点-----左子树-----右子树  (根左右)
		时间复杂度为O(n)

2.中序遍历

	    左子树-----根节点-----右子树  (左根右)
	    时间复杂度为O(n)

3.后序遍历

	    左子树-----右子树-----根节点  (左右根)
	    时间复杂度为O(n)

4.层序遍历

		从根节点开始,一层一层,从上到下,每层从左到右    

5.根据已知的两个遍历,求第三种遍历

	方法:1.前序遍历的第一个节点就为该二叉树的根节点。
	      2.后序遍历的最后一个节点为该二叉树的根节点。
	      2.在中序遍历序列中找到根节点的位置,根节点左侧的所有节点都属于左子树,右侧的所有节点都属于右子树。
	      最后再依据前面的三条,对已经确认好的左子树或右子树进行分析,直至确定最终的二叉树。 

5.1.已知前序遍历和中序遍历,确认后序遍历

例子:已知前序遍历为ABDHIEJCFKG,中序遍历为HDIBEJAFKCG,则该二叉树的后序遍历为?
分析:1.通过前序遍历可确认该二叉树的根节点为A
2.通过中序遍历+根节点为A,确认HDIBEJ为左子树,FKCG为右子树
3.对左子树HDIBEJ进行分析,分析原理同上,即前序遍历中的BDHIEJ中,B为左子树的根节点,再以此为依据,分析中序遍历中的HDIBEJ,HDI为左子树,EJ为右子树,接下来同理。
4.对右子树FKCG进行分析,分析原理同上,即前序遍历中的CFKG中,C为左子树的根节点,再以此为依据,分析中序遍历中的FKCG,FKI为左子树,G为右子树,接下来同理。
所以最后的图为,后序遍历为HIDJEBFGCA
在这里插入图片描述

5.2.已知后序遍历和中序遍历,确认前序遍历

例子:已知中序遍历为ABCDEFG,后序遍历为BDCAFGE,则该二叉树的前序遍历为?
分析:1.通过后序遍历可确认该二叉树的根节点为E
2.通过中序遍历+根节点为E,则确认ABCD为左子树,FG为右子树
3.对左子树ABCD进行分析,原理同上:中序遍历为ABCD,后序遍历为BDCA,A为左子树根节点,BCD为A的右子树,接下来同理。
4.对右子树FG进行分析,G是F的根节点
所以最后的图为:前序遍历为EACBDGF
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值