二叉树——已知前(后)序遍历和中序遍历,求解树
来源:互联网 发布:微信程序员如何联系 编辑:程序博客网 时间:2024/05/06 00:20
这种题一般有二种形式,共同点是都已知中序序列。如果没有中序序列,是无法唯一确定一棵树的,证明略。
一、已知二叉树的前序序列和中序序列,求解树。
1、确定树的根节点。树根是当前树中所有元素在前序遍历中最先出现的元素。
2、求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都为空,则根节点已经为叶子节点。
3、递归求解树。将左子树和右子树分别看成一棵二叉树,重复1、2、3步,直到所有的节点完成定位。
二、已知二叉树的后序序列和中序序列,求解树。
1、确定树的根。树根是当前树中所有元素在后序遍历中最后出现的元素。
2、求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都为空,则根节点已经为叶子节点。
3、递归求解树。将左子树和右子树分别看成一棵二叉树,重复1、2、3步,直到所有的节点完成定位。
举例说明:根据已知求解二叉树
中序序列 HLDBEKAFCG
后序序列 LHDKEBFGCA
1、在后序序列LHDKEBFGCA中最后出现的元素为A,HLDBEK|A|FCG
2、在后序序列LHDKEB中最后出现的元素为B,HLD|B|EK|A|FCG
3、在后序序列LHD中最后出现的元素为D,HL|D|B|EK|A|FCG
4、在后序序列LH中最后出现的元素为H,H|L|D|B|EK|A|FCG
5、在后序序列KE中最后出现的元素为E,H|L|D|B|E|K|A|FCG
5、在后序序列FGC中最后出现的元素为C,H|L|D|B|E|K|A|F|C|G
6、所有元素都已经定位,二叉树求解完成。
A / \ B C / \ / \ D E F G / \ H K \ L
- 二叉树——已知前(后)序遍历和中序遍历,求解树
- 二叉树遍历---已知前序遍历和中序遍历求其后序
- 已知二叉树的前序/后序遍历和中序遍历,求后序/前序遍历
- 已知二叉树的前序/后序遍历和中序遍历,求后序/前序遍历
- 已知二叉树的前序/后序遍历和中序遍历,求后序/前序遍历
- 已知二叉树的前序/后序遍历和中序遍历,求后序/前序遍历
- 已知二叉树的前序/后序遍历和中序遍历,求后序/前序遍历
- 已知二叉树的前序遍历和中序遍历,求二叉树的后序遍历
- 已知二叉树的后序/前序遍历和中序遍历,求前序/中序遍历
- 已知后序遍历和中序遍历求解前序遍历
- 已知二叉树的前序遍历和中序遍历,如何得到它的后序遍历?
- 已知二叉树的前序遍历和中序遍历,如何得到它的后序遍历?
- 已知前序遍历序列和中序遍历序列,求二叉树的后序遍历
- 已知二叉树的前序遍历和中序遍历求后序遍历(二叉树)
- 二叉树系列:已知二叉树的中序遍历和前序遍历,求后序遍历
- 已知前序和中序遍历恢复二叉树
- 二叉树遍历:已知前序和中序,求后序
- 二叉树遍历问题:已知中序遍历和后序遍历结果,求前序遍历结果
- COC素材文件破解
- Android 多媒体框架相关的文章备份
- final review 无路可逃?
- gcc - lm的含义
- 06_集合框架、泛型
- 二叉树——已知前(后)序遍历和中序遍历,求解树
- WebUtils.getSessionAttribute(request, "");
- 微信平台需要的各个接口和捷哥浅谈篇
- Deblocking
- JavaScript中的客户端对象
- linux 应用程序启动时间和系统启动时间
- 并查集
- JAVA反射机制
- 经典hibernate配置详解