二叉树

二叉树:一个二叉树由一个根结点 一个左子树 一个右子树组成。

满二叉树:所有的叶子结点都在同一层中,度数为0,看起来是一个三角形。

完全二叉树:叶子结点只能出现在最后一层或倒数第二层,除去最后一层后的二叉树是一个满二叉树,且最后一层的叶子节点必须是从左到右顺序排列。


前序遍历(深度优先遍历):顺序是 根 左 右 ABDEFGCHIMR

中序遍历:顺序是 左 根 右 DEBGFACMIRH

后序遍历:顺序是 左 右 根 EDGFBMRIHCA

广度优先遍历:从左到右依次遍历每一层的二叉树,层 (左 右)ABCDFHEGIMR


练习1:已知前序遍历和中序遍历求出后序遍历。


分析:

1.前序遍历的第一个字母和后序遍历的最后一个字母是 根节点。

2.中序遍历中在根节点右边的是右子结点以及结点下的子树,在根节点左边的是左子节点以及结点下的子树。

3.在中序遍历中根节点右边的子树(字母)里面如果在前序遍历中的顺序在最前面则为前一个根结点的下一个子树。

3的注释:如在中序遍历中根节点A的右边有CMIRH,在前序遍历中发现C在最前面,则A的右子树为C,以此类推。画出图,写出后序遍历。 

这样我们可以根据前序遍历和中序遍历 得到后序遍历。


练习2:已知中序遍历和后序遍历求出前序遍历。


分析:

1.前序遍历的第一个字母和后序遍历的最后一个字母是 根节点。

2.中序遍历中在根节点右边的是右子结点以及结点下的子树,在根节点左边的是左子节点以及结点下的子树。

3.在中序遍历中根节点右边的子树(字母)里面如果在后序遍历中的顺序在最后面则为前一个根结点的下一个子树。

3的注释:如在中序遍历中根节点A的右边有CMIRH,在后序遍历中发现C在最后面,则A的右子树为C,以此类推。画出图,写出前序遍历。 

这样我们可以根据后序遍历和中序遍历 得到前序遍历。


Java程序的实现 明天补上.



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值