【数据结构与算法】重建二叉树
来源:互联网 发布:预防网络成瘾 编辑:程序博客网 时间:2024/05/19 10:10
只能根据前序中序或者中序后序重建二叉树,不可能根据前序和后序重建,因为需要中序去划分左右子树。
- 代码实现
/** * 源码名称:ConstructBT.java * 日期:2014-09-05 * 程序功能:重建二叉树(前序中序) * 版权:CopyRight@A2BGeek * 作者:A2BGeek */public class ConstructBT {class Node<T> {T mValue;Node<T> mLeft;Node<T> mRight;public Node(T value, Node<T> left, Node<T> right) {mValue = value;mLeft = left;mRight = right;}}public Node<Character> buildBT(String pre, String mid) {Node<Character> root = null;String lpre, rpre, lmid, rmid;int pos = 0;if (pre.length() == 0 || mid.length() == 0) {return null;} else {root = new Node<Character>(pre.charAt(0), null, null);while (mid.charAt(pos) != root.mValue) {pos++;}// recursive leftlpre = pre.substring(1, pos + 1);lmid = mid.substring(0, pos);root.mLeft = buildBT(lpre, lmid);// recursive rightrpre = pre.substring(pos + 1, pre.length());rmid = mid.substring(pos + 1, mid.length());root.mRight = buildBT(rpre, rmid);}return root;}public void postIterate(Node<Character> root) {if (root == null) {return;} else {postIterate(root.mLeft);postIterate(root.mRight);System.out.print(root.mValue + " ");}}public static void main(String[] args) {ConstructBT bt = new ConstructBT();Node<Character> root = bt.buildBT("12473568", "47215386");bt.postIterate(root);}}
0 0
- 【数据结构与算法】重建二叉树
- 数据结构与算法分析笔记与总结(java实现)--二叉树24:重建二叉树
- 算法-重建二叉树
- 算法-重建二叉树
- 【数据结构与算法】二叉树
- 数据结构与算法-二叉树
- 算法与数据结构 - 二叉树
- 数据结构与算法:二叉树
- 数据结构与算法:二叉树
- 数据结构与算法-二叉树
- 【算法题】重建二叉树
- 算法题目---重建二叉树
- 算法:二叉树的重建
- 算法题/重建二叉树
- [数据结构与算法]二叉树与二叉树遍历
- 数据结构与算法(C#实现)---二叉树
- 数据结构与算法(C#实现)---二叉树
- 数据结构与算法系列---二叉树
- error:使用netsh设置网关失败
- 将二叉树结构转换为双向链表 java语言实现
- linux下性能分析命令
- 高效 Java Web 开发框架 JessMA v3.4.1 正式发布
- 使用linq to list 做递归
- 【数据结构与算法】重建二叉树
- Android 4.0 以后代码混淆及签名
- 【SSH进阶之路】Hibernate基本原理(一)
- 编码,加解密,签名,Hash
- 从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构)
- 浅谈欧拉角与四元数
- Android Monkey跑出来的一个Bug:IllegalStateException
- Hibernate HQL 语法 明细
- 设计包含 min 函数的栈(栈) java语言实现