poj: 2255
跟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的更多相关文章
- Tree Recovery POJ - 2255
Tree Recovery POJ - 2255 根据树的前序遍历和中序遍历还原后序遍历. (偷懒用了stl的find) #include<iostream> #include<st ...
- POJ 2255. Tree Recovery
Tree Recovery Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11939 Accepted: 7493 De ...
- POJ 2255 Tree Recovery 树的遍历,分治 难度:0
http://poj.org/problem?id=2255 #include<cstdio> #include <cstring> using namespace std; ...
- Poj 2255 Tree Recovery(二叉搜索树)
题目链接:http://poj.org/problem?id=2255 思路分析:根据先序遍历(如DBACEGF)可以找出根结点(D),其后为左右子树:根据中序遍历(如ABCDEFG),已知根结点(D ...
- poj 2255 Tree Recovery(求后序遍历,二叉树)
版权声明:本文为博主原创文章,未经博主同意不得转载.vasttian https://blog.csdn.net/u012860063/article/details/37699219 转载请注明出处 ...
- POJ 2255 Tree Recovery && Ulm Local 1997 Tree Recovery (二叉树的前中后序遍历)
链接:poj.org/problem?id=2255 本文链接:http://www.cnblogs.com/Ash-ly/p/5463375.html 题意: 分别给你一个二叉树的前序遍历序列和中序 ...
- POJ 2255 Tree Recoveryw(二叉树)
题目原网址:http://poj.org/problem?id=2255 题目中文翻译: Description 小瓦伦丁非常喜欢玩二叉树. 她最喜欢的游戏是用大写字母构造的随机二叉树. 这是她的一个 ...
- POJ 2255 Tree Recovery(根据前序遍历和中序遍历,输出后序遍历)
题意:给出一颗二叉树的前序遍历和中序遍历的序列,让你输出后序遍历的序列. 思路:见代码,采用递归. #include <iostream> #include <stdio.h> ...
- POJ 2255 Tree Recovery 二叉树的遍历
前序和中序输入二叉树,后序输出二叉树:核心思想只有一个,前序的每个根都把中序分成了两部分,例如 DBACEGF ABCDEFG D把中序遍历的结果分成了ABC和EFG两部分,实际上,这就是D这个根的左 ...
随机推荐
- 一张表有三个字段:id(城市id) Cityname(城市名) Privence(所属省份)如果要统计每个省份有多少城市请用SQL实现。
一张表有三个字段:id(城市id) Cityname(城市名) Privence(所属省份)如果要统计每个省份有多少城市请用SQL实现.
- CS6破解
1) 序列号这里为大家生成了两个,可以通过软件验证:1325-0949-2080-9819-3777-32301325-0160-5283-9851-2671-8951 2) 破解补丁安装时会用到,请 ...
- IntelliJ IDEA大小写转换快捷键
IntelliJ IDEA大小写转换快捷键 Ctr + Shift + u
- jq的核心基础
1.jq代码的风格 jq对象$().css();jQuery().css(); //获取jquery对象 示例$().css('background':'red').css('font-siz ...
- POJ 1035题目描述
Description You, as a member of a development team for a new spell checking program, are to write a ...
- 搭建和使用Docker私有仓库
需要注意的是,从Docker Pool下载的镜像文件,与官方镜像文件是完全一致的. 安装Docker之后,可以是使用官方提供的registry镜像来搭建一套本地私有仓库环境: docker run ...
- PaySignKey
关键词:微信支付 PaySignKey 原文:http://www.cnblogs.com/txw1958/p/weixin-paysignkey.html 微信支付现在分为v2版和v3版 2014年 ...
- Java控制语句——switch语句
上述if语句的等值判断,可以用switch来代替. 注意每个case后面一般要添加break,表示当前这个case执行完了:防止出现case穿透,即继续执行case,直到遇到break才跳出. 下面例 ...
- hadoop 文件系统API操作
配置参数:-DHADOOP_USER_NAME=hadoop public class HdfsUtils { private static FileSystem fileSystem; @Befor ...
- HBase环境搭建
HBase与Hadoop对应关系:http://hbase.apache.org/book.html#basic.prerequisites 4.1. Hadoop 这块介绍了对应关系 HBase ...