2001年NOIP全国联赛普及组

题目描述 Description

给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<=8)。

输入描述 Input Description

两个字符串,分别是中序和后序(每行一个)

输出描述 Output Description

一个字符串,先序

样例输入 Sample Input

BADC

BDCA

样例输出 Sample Output

ABCD

 #include<stdio.h>
#include<malloc.h>
#include<string.h>
typedef char ElemType;
typedef struct node
{
ElemType data; //数据元素
struct node *lchild; //指向左孩子结点
struct node *rchild; //指向右孩子结点
} BTNode;
BTNode *CreateBT2(char *post,char *in,int n)
/*post存放后序序列,in存放中序序列,n为二叉树结点个数,
本算法执行后返回构造的二叉链的根结点指针*/
{
BTNode *s;
char r,*p;
int k;
if(n<=) return NULL;
r=*(post+n-); //根结点值
s=(BTNode *)malloc(sizeof(BTNode)); //创建二叉树结点*s
s->data=r;
for (p=in;p<in+n;p++) //在in中查找根结点
if (*p==r)
break;
k=p-in; //k为根结点在in中的下标
s->lchild=CreateBT2(post,in,k); //递归构造左子树
s->rchild=CreateBT2(post+k,p+,n-k-); //递归构造右子树
return s;
}
void PreOrder(BTNode *b) /*先序遍历的递归算法*/
{
if (b!=NULL)
{
printf("%c",b->data); /*访问根结点*/
PreOrder(b->lchild);
PreOrder(b->rchild);
}
}
int main(int argc, char *argv[])
{
freopen("data.in","r",stdin);
char in[],post[];
scanf("%s%s",in,post);
BTNode *root=CreateBT2(post,in,strlen(in));
PreOrder(root);
return ;
}

张泽萱的代码:

 #include <iostream>
#include <cstring>
char a[],b[];
using namespace std;
void turn(int l,int r,int st,int ed);
int main(int argc, char *argv[])
{
int n;
cin>>a>>b;//a中序,b后序
n=strlen(b);
turn(,n-,,n-);
return ;
}
void turn(int l,int r,int st,int ed)//l,r分别指向中序的开头和结束,st,ed指向后序的开头和结束
{
int temp,i;
temp=b[ed];
if(l>r||st>ed)return ;
else
{
cout<<char(temp);
for(i=l;i<=r;i++)
{
if(a[i]==temp)
{
turn(l,i-,st,st+i-l-);//查左子树
turn(i+,r,st+i-l,ed-);//查右子树
break;
}
}
}
}

code vs 1013 求先序排列的更多相关文章

  1. codevs——1013 求先序排列

    1013 求先序排列 2001年NOIP全国联赛普及组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 给出 ...

  2. codevs 1013 求先序排列

    题目链接:http://codevs.cn/problem/1013/ 题目描述 Description 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度< ...

  3. codevs 1013 求先序排列(二叉树遍历)

    传送门 Description 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=8). Input 两个字符串,分别是中序和后序(每行一个) Outp ...

  4. codevs 1013 求先序排列 2001年NOIP全国联赛普及组 x

                         题目描述 Description 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=8). 输入描述 Inpu ...

  5. [蓝桥杯]ALGO-20.算法训练_求先序排列

    问题描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=). 输入格式 两行,每行一个字符串,分别表示中序和后序排列 输出格式 一个字符串,表示所求 ...

  6. 求先序排列(NOIP2001&NOIP水题测试(2017082301))

    题目链接:求先序排列 这道题讲白了,就是数的构造,然后遍历. 思路大致是这样: 我们先通过后序遍历,找到当前区间的根,然后在中序遍历中找到根对应的下标,然后就可以分出左右子树,建立当前根与左右子树根的 ...

  7. 题解 P1030 【求先序排列】

    题解 P1030 [求先序排列] 旧题新解~ 今天做这个题,发现还是没有AC,于是滚回来用了一大堆数据结构A了这个题目,好像复杂度还挺高...... #include <iostream> ...

  8. 如何求先序排列和后序排列——hihocoder1049+洛谷1030+HDU1710+POJ2255+UVA548【二叉树递归搜索】

    [已知先序.中序求后序排列]--字符串类型 #1049 : 后序遍历 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho在这一周遇到的问题便是:给出一棵二叉树的前序和 ...

  9. Java实现 蓝桥杯VIP 算法训练求先序排列

    问题描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=8). 输入格式 两行,每行一个字符串,分别表示中序和后序排列 输出格式 一个字符串,表示所 ...

随机推荐

  1. 看看Spring的源码(二)——bean实例化

    首先来看一段代码,看过上一节的朋友肯定对这段代码并不陌生.这一段代码诠释了Spring加载bean的完整过程,包括读取配置文件,扫描包,加载类,实例化bean,注入bean属性依赖. public v ...

  2. C++可变参数列表处理宏va_list、va_start、va_end的使用

      VA_LIST是在C语言中解决变参问题的一组宏他有这么几个成员: 1)va_list型变量: #ifdef     _M_ALPHA typedef    struct{ char* a0; /* ...

  3. Laravel学习笔记之Session源码解析(中)

    说明:在上篇中学习了session的启动过程,主要分为两步,一是session的实例化,即\Illuminate\Session\Store的实例化:二是从session存储介质redis中读取id ...

  4. windows 通过Web.config添加mimetype映射

    在Web.config里添加以下代码即可 <configuration> <system.webServer> <staticContent> <!-- re ...

  5. JavaScript 将行结构数据转化为树形结构,可提供给常用的tree插件直接使用(高效转化方案)

    前台接收到的数据格式 var rows=[{ parent: 'root', id: 'DC', title: '集团' }, { parent: 'DC', id: '01', title: '上海 ...

  6. windows 环境变量

    1.考虑下面的需求,进入cmd之后,我就想执行mysql客户端命令,而这需要转到mysql安装目录,找到mysql可执行文件,在这个目录下执行mysql命令.这样太麻烦,有没有好的解决办法? 2.使用 ...

  7. 构建高性能服务(二)java高并发锁的3种实现

    构建高性能服务(二)java高并发锁的3种实现 来源:http://www.xymyeah.com/?p=46   提高系统并发吞吐能力是构建高性能服务的重点和难点.通常review代码时看到sync ...

  8. WIN10系统 截图或者某些程序时屏幕会自动放大怎么办

    右击这个应用程序,兼容性,以兼容模式运行,同时勾选高DPI设置时禁止显示缩放即可

  9. Solidworks如何打开swb文件

    把swb文件拖放到Solidworks里面,会弹出窗口选择一个文件夹   随后会自动生成对应的文件,装配体  

  10. Spring MVC中使用errors标签

    先创建一个实体类,后续的验证都基于这个实体类: public class Goods { private String goodsName; private String city; private ...