博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
给定二叉树先序、中序遍历序列,求后序遍历
阅读量:6406 次
发布时间:2019-06-23

本文共 1782 字,大约阅读时间需要 5 分钟。

给定一个二叉树的前序遍历和中序遍历的序列,输出对应这个二叉树的后续遍历序列。

输入描述:
输入为一行。两个字符串,分别表示二叉树的前序遍历和中序遍历结果,用空格分隔。保证数据合法
输出描述:
对应输出后序遍历序列
示例1

输入

ABDEC DBEAC

输出

DEBCA 思路:先根据先序、中序序列建立二叉树,然后后序遍历
import java.util.Scanner; import javax.print.attribute.standard.PresentationDirection;  class TreeNode {     char val;     TreeNode left;     TreeNode right;     TreeNode(char x) { val = x; } }  public class Main {    public static  String preStr;    public static String midStr;         public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner sc = new Scanner(System.in);        String s = sc.nextLine();        int pos = s.indexOf(" ");        preStr = s.substring(0,pos);        midStr = s.substring(pos+1,s.length());        //System.out.println("pre:"+preStr);        //System.out.println("midS:"+midStr);        TreeNode rs = creat(preStr,0,preStr.length()-1,midStr,0,midStr.length()-1);        rView(rs);    }    public static void rView(TreeNode root){        if(root!=null){            rView(root.left);            rView(root.right);            System.out.print(root.val);        }    }    public static TreeNode creat(String preStr,int pstart,int pend,String midStr,int mstart,int mend){        if(mstart>mend||pstart>pend) return null;        char[] cmidStr= midStr.toCharArray();        char[] cpreStr=preStr.toCharArray();        TreeNode root = new TreeNode(cpreStr[pstart]);        for(int i = mstart;i<=mend;i++)            if(cmidStr[i]==cpreStr[pstart]){                int len = i-mstart;                                 root.left = creat(preStr,pstart+1,pstart+len,midStr,mstart,i-1);                root.right = creat(preStr,pstart+len+1,pend,midStr,i+1,mend);            }            return root;       } }

 

转载于:https://www.cnblogs.com/Keven02/p/7456834.html

你可能感兴趣的文章
1077. 互评成绩计算 (20)
查看>>
JavaScript使用接口
查看>>
php 概率算法(转)
查看>>
如何到达永生?揭示科学之美
查看>>
“电梯演讲”最精炼、贴切的语言
查看>>
poj2488旧题重做标准DFS
查看>>
2018.10.22-dtoi1443奶牛逃亡(cowrun)
查看>>
需求获取常见的方法是进行客户访谈,结合你的实践谈谈会遇到什么问题,你是怎么解决的?...
查看>>
codeforces 802B Heidi and Library (medium)
查看>>
系统设置界面文档
查看>>
dig命令浅析
查看>>
身份证检测
查看>>
超越halcon速度的二值图像的腐蚀和膨胀,实现目前最快的半径相关类算法(附核心源码)。...
查看>>
Oracle中NVARCHAR2与VARCHAR2的区别
查看>>
php debug
查看>>
Android 用MediaCodec实现视频硬解码
查看>>
FileWriter与BufferedWriter的适用场景
查看>>
数论初步——扩展欧几里得算法
查看>>
为什么React事件处理函数必须使用Function.bind()绑定this?
查看>>
Python 计算相似度
查看>>