跟LEETCODE的preorder,inorder转postorder题很像

 #include <iostream>
 #include <stdio.h>
 #include <string>
 #include <stack>
 #include <map>
 #include <vector>
 #include <algorithm>
 using namespace std;

 struct node {
     char val;
     node *left, *right;
     node(char v) : val(v), left(NULL), right(NULL) { }
 };

 node* preIn(string preorder, string inorder, int prebeg, int inbeg, int len) {
     if (!len) return NULL;
     node *tmp = new node(preorder[prebeg]);
     int leftlen, rightlen;
     for (int i = inbeg; i < inbeg+len; ++i) {
         if (tmp->val == inorder[i]) {
             leftlen = i - inbeg;
             rightlen = len - leftlen - ;
             break;
         }
     }
     tmp->left = preIn(preorder, inorder, prebeg+, inbeg, leftlen);
     tmp->right = preIn(preorder, inorder, prebeg+leftlen+, inbeg+leftlen+, rightlen);
     return tmp;
 }

 string postString(node *root) {
     if (!root) return "";
     return postString(root->left) + postString(root->right) + root->val;
 }

 int main()
 {
     string preorder, inorder;
     while (cin >> preorder && cin >> inorder) {
         node *root = preIn(preorder, inorder, , , preorder.size());
         string postorder = postString(root);
         cout << postorder << endl;
     }

     ;
 }

poj: 2255的更多相关文章

  1. Tree Recovery POJ - 2255

    Tree Recovery POJ - 2255 根据树的前序遍历和中序遍历还原后序遍历. (偷懒用了stl的find) #include<iostream> #include<st ...

  2. POJ 2255. Tree Recovery

    Tree Recovery Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11939   Accepted: 7493 De ...

  3. POJ 2255 Tree Recovery 树的遍历,分治 难度:0

    http://poj.org/problem?id=2255 #include<cstdio> #include <cstring> using namespace std; ...

  4. Poj 2255 Tree Recovery(二叉搜索树)

    题目链接:http://poj.org/problem?id=2255 思路分析:根据先序遍历(如DBACEGF)可以找出根结点(D),其后为左右子树:根据中序遍历(如ABCDEFG),已知根结点(D ...

  5. poj 2255 Tree Recovery(求后序遍历,二叉树)

    版权声明:本文为博主原创文章,未经博主同意不得转载.vasttian https://blog.csdn.net/u012860063/article/details/37699219 转载请注明出处 ...

  6. POJ 2255 Tree Recovery && Ulm Local 1997 Tree Recovery (二叉树的前中后序遍历)

    链接:poj.org/problem?id=2255 本文链接:http://www.cnblogs.com/Ash-ly/p/5463375.html 题意: 分别给你一个二叉树的前序遍历序列和中序 ...

  7. POJ 2255 Tree Recoveryw(二叉树)

    题目原网址:http://poj.org/problem?id=2255 题目中文翻译: Description 小瓦伦丁非常喜欢玩二叉树. 她最喜欢的游戏是用大写字母构造的随机二叉树. 这是她的一个 ...

  8. POJ 2255 Tree Recovery(根据前序遍历和中序遍历,输出后序遍历)

    题意:给出一颗二叉树的前序遍历和中序遍历的序列,让你输出后序遍历的序列. 思路:见代码,采用递归. #include <iostream> #include <stdio.h> ...

  9. POJ 2255 Tree Recovery 二叉树的遍历

    前序和中序输入二叉树,后序输出二叉树:核心思想只有一个,前序的每个根都把中序分成了两部分,例如 DBACEGF ABCDEFG D把中序遍历的结果分成了ABC和EFG两部分,实际上,这就是D这个根的左 ...

随机推荐

  1. 一张表有三个字段:id(城市id) Cityname(城市名) Privence(所属省份)如果要统计每个省份有多少城市请用SQL实现。

    一张表有三个字段:id(城市id) Cityname(城市名) Privence(所属省份)如果要统计每个省份有多少城市请用SQL实现.

  2. CS6破解

    1) 序列号这里为大家生成了两个,可以通过软件验证:1325-0949-2080-9819-3777-32301325-0160-5283-9851-2671-8951 2) 破解补丁安装时会用到,请 ...

  3. IntelliJ IDEA大小写转换快捷键

    IntelliJ IDEA大小写转换快捷键 Ctr + Shift + u

  4. jq的核心基础

    1.jq代码的风格    jq对象$().css();jQuery().css();  //获取jquery对象 示例$().css('background':'red').css('font-siz ...

  5. POJ 1035题目描述

    Description You, as a member of a development team for a new spell checking program, are to write a ...

  6. 搭建和使用Docker私有仓库

    需要注意的是,从Docker Pool下载的镜像文件,与官方镜像文件是完全一致的. 安装Docker之后,可以是使用官方提供的registry镜像来搭建一套本地私有仓库环境:  docker run  ...

  7. PaySignKey

    关键词:微信支付 PaySignKey 原文:http://www.cnblogs.com/txw1958/p/weixin-paysignkey.html 微信支付现在分为v2版和v3版 2014年 ...

  8. Java控制语句——switch语句

    上述if语句的等值判断,可以用switch来代替. 注意每个case后面一般要添加break,表示当前这个case执行完了:防止出现case穿透,即继续执行case,直到遇到break才跳出. 下面例 ...

  9. hadoop 文件系统API操作

    配置参数:-DHADOOP_USER_NAME=hadoop public class HdfsUtils { private static FileSystem fileSystem; @Befor ...

  10. HBase环境搭建

    HBase与Hadoop对应关系:http://hbase.apache.org/book.html#basic.prerequisites   4.1. Hadoop 这块介绍了对应关系 HBase ...