2 l975764577 l975764577 于 2014.09.18 10:14 提问

中序,后序确定一颗树

我实现了基于前序和中序的代码
代码如下
public static TreeNode buildTree(int[] preorder, int[] inorder){

return buildTree(preorder, 0, inorder,0, preorder.length);

}

public static TreeNode buildTree(int[] preorder,int prestart, int[] inorder,int instart,int n)
{
if(n<=0){

return null;

}

TreeNode p=new TreeNode(preorder[prestart]);
int i=0;
while(i<n&&p.val!=inorder[instart+i]){
i++;

}
p.left=buildTree(preorder, prestart+1, inorder, instart, i);
p.right=buildTree(preorder, prestart+i+1, inorder, instart+i+1, n-i-1);
return p;
}

哪位大神能够基于我的实现前序,中序的方法,帮我写下基于后续,中序的代码,万分感谢 ,请跟我一样使用参数一致,不要使用google可以看到的代码

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
已知一棵二叉树的后序遍历和中序遍历,写出可以确定这棵二叉树的算法
已知一棵二叉树的后序遍历和中序遍历,写出可以确定这棵二叉树的算法 #include #include #include #define MAX 105 typedef struct bitnode {     char data;     struct bitnode *lchild,*rchild; }BiTNode,*BiTree; int search_num(
白话篇:利用二叉树先序/中序/后序确定二叉树求法分析
前篇: 二叉树的遍历: 二叉树的遍历是指按照一定次序访问二叉树中所有的节点,并且每个节点仅仅能够访问一次。这也是二叉树最基本的运算。 常用的3钟递归遍历方式: 1.先序遍历,过程: (1)访问根节点 (2)访问左子树 (3)访问右子树 2.中序遍历,过程: (1)访问左子树 (2)访问根节点 (3)访问右子树 3.后序遍历: (1)访问左子树 (2)访问右子树 (3)
由中序序列和后序序列唯一确定一棵二叉树
已知一棵二叉树的中序和后序序列如下:                                中序:G  L  D  H  B  E  I  A  C  J  F  K                                后序:L  G  H  D  I   E  B  J  K  F  C  A 则可以唯一确定一棵二叉树。 #include
为什么只给出前序和后序,不能唯一确定一个二叉树
我们在学习二叉树的遍历时,都会不可避免的学到二叉树的三种遍历方式,分别是遵循(根-左-右)的前序遍历、遵循(左-根-右)的中序遍历以及遵循(左-右-根)的后序遍历。并且每一个二叉树都可以用这三种遍历方式并且分别转换为字符串序列,以便在计算机上面保存。但是我们在进行逆向操作的时候却会遇到困难:我们并不能从某一种遍历方式推断出唯一的二叉树,也就是说,这是个单向编码的过程。而当我们有一个二叉树的两种遍历
根据中序遍历和前序遍历输出后序遍历,自己的代码
题目描述 二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树; 中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树; 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。 给定一棵二叉树的前序遍历和中序遍历,求其后序遍历(提示:给定前序遍历与中序遍历能够唯一确定后序遍历)。 输入描述: 两个字符串,其长
由二叉树的后序和中序求层次遍历
Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder traversal sequences, you are supposed to output the level order traversal sequence of the cor
根据前序和中序序列确定二叉树
方法1、确定树的根节点。树根是当前树中所有元素在前序遍历中最先出现的元素。 2、求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都为空,则根节点已经为叶子节点。 3、递归求解树。将左子树和右子树分别看成一棵二叉树,重复1、2、3步,直到所有的节点完成定位。其的遍历来确定二叉树可以参考:
已知二叉树的后序遍历和中序遍历重建二叉树(二叉树)
由中序遍历和后序遍历重建二叉树 中序遍历中,根节点总是位于左右子树中间,将左右子树分开。 后序遍历中,根节点总是在左右子树之后。 重建算法: 现在说一下重建根节点的过程,其他节点可以递归建立。 由后序遍历定义可知,后序遍历序列的最后一个元素必定是整个树的根节点,这样就确定了根节点。 由中序遍历定义可知,在中序遍历中查找根节点,可以确定根节点在中序遍历序列中位置,这样就可以将中序遍历
已知一棵二叉树的中序遍历和后序遍历,求二叉树的先序遍历
题目描述 已知一棵二叉树的中序遍历和后序遍历,求二叉树的先序遍历 输入 输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据。每组包括两个长度小于50 的字符串,第一个字符串表示二叉树的中序遍历序列,第二个字符串表示二叉树的后序遍历序列。 输出 输出二叉树的先序遍历序列 示例输入 2 dbgeafc dgebfca lnixu linux 示例输出
二叉树中,已知中序和后序序列,求先序序列
/* 问题描述   给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<=8)。 输入格式   两行,每行一个字符串,分别表示中序和后序排列 输出格式   一个字符串,表示所求先序排列 样例输入 BADC BDCA 样例输出 ABCD*/ import java.util.*; public class Main{ public static String