P1827 美国血统 American Heritage

简介: P1827 美国血统 American Heritage

题目描述:

农夫约翰非常认真地对待他的奶牛们的血统。然而他不是一个真正优秀的记帐员。他把他的奶牛们的家谱作成二叉树,并且把二叉树以更线的”树的中序遍历“和”树的前序遍历“的符号加以记录而不是用图形的方法。

你的任务是在被给予奶牛家谱的”树中序遍历“和”树前序遍历“的符号后,创建奶牛家谱的”树的后序遍历“的符号。每一头奶牛的姓名译为一个唯一的字母。(你可能已经知道你可以在知道树的两种遍历以后可以经常地重建这棵树。)显然,这里的树不会有多余26个的顶点。

这是在样例输入和样例输出中的树的图形表达式:

                  C
                /   \
               /     \
              B       G
             / \     /
            A   D   H
               / \
              E   F

树的中序遍历是打印左子树,根和右子树。

树的前序遍历是打印根,左子树和右子树。

树的后序遍历是打印左子树,右子树和根。 13

输入:

第一行:  树的中序遍历
第二行:  同样的树的前序遍历

输出:

单独的一行表示该树的后序遍历

样例输入:

ABEDFCHG
CBADEFGH

样例输出:

AEFDBHGC

解题思路:这个题主要考察的是二叉树递归求后序遍历。我们知道如果想要求出前序或者后序遍历都必须已知中序遍历,因为这样就可以知道前序或者后序在哪一边?如本题由前序确立根结点,然后由中序把根左右两边分开。

程序代码:

#include<stdio.h>
#include<string.h>
void build(int m,char s2[],char s1[])
{
    if(m<=0)
        return;
    int p=strchr(s1,s2[0])-s1;//找到根结点,在中序遍历的位置
    build(p,s2+1,s1);//构造左子树的后序遍历
    build(m-p-1,s2+p+1,s1+p+1);//构造右子树的后序遍历
    printf("%c",s2[0]); 
     
}
int main()
{
    int i,n,m,j,k;
    char s1[30],s2[30],t;
    while(scanf("%s%s",&s1,&s2)!=EOF)
    {
        n=strlen(s1);
        m=strlen(s2);
        t=s2[0];
        build(m,s2,s1);
        printf("\n");   
    }
    return 0;
}
相关文章
|
人工智能 Cloud Native 文件存储
阿里云容器服务ACK云原生AI套件测评
随着人工智能(AI)技术的快速发展,越来越多的企业开始在其业务中引入AI能力,以提高运营效率、优化用户体验,以及创造新的商业价值。像我们这种小型企业也不例外,希望通过集成先进的AI技术来提升业务运营的智能化水平。在这样的背景下,阿里云容器服务ACK推出了云原生AI套件,它能够帮助企业在Kubernetes容器平台上快速构建和运行AI应用,实现全栈优化。本次通过一次实验体验,简单对云原生AI套件进行测评。
97299 48
|
9月前
|
机器学习/深度学习 运维 自然语言处理
深度学习+实时监控:运维不再靠“拍脑袋”!
深度学习+实时监控:运维不再靠“拍脑袋”!
353 3
|
11月前
|
存储 资源调度 Java
计算机基础(1)——计算机体系结构和组成
计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。 在过去的几十年里,计算机科学经历了令人瞩目的飞速发展。经历了电子管、晶体管、集成电路的世代发展,体积越来越小、性能越来越强,为人类带来了巨大的便利和变革,下面我们来回顾计算机的发展历程。
3257 5
计算机基础(1)——计算机体系结构和组成
|
11月前
|
供应链 搜索推荐 API
深度解析1688 API对电商的影响与实战应用
在全球电子商务迅猛发展的背景下,1688作为知名的B2B电商平台,为中小企业提供商品批发、分销、供应链管理等一站式服务,并通过开放的API接口,为开发者和电商企业提供数据资源和功能支持。本文将深入解析1688 API的功能(如商品搜索、详情、订单管理等)、应用场景(如商品展示、搜索优化、交易管理和用户行为分析)、收益分析(如流量增长、销售提升、库存优化和成本降低)及实际案例,帮助电商从业者提升运营效率和商业收益。
484 20
|
12月前
|
Web App开发 安全 Python
Chrome RCE 漏洞复现
Google Chrome是由Google开发的免费网页浏览器,大量采用Chrome内核的浏览器同样也会受此漏洞影响。攻击者利用此漏洞,可以构造一个恶意的web页面,当用户访问该页面时,会造成远程代码执行。 由于Chrome浏览器会默认开启沙盒,可以拦截利用该漏洞发起的攻击,所以一般用户不会受到影响。
623 10
Chrome RCE 漏洞复现
PHP中如何比较两个对象
PHP中如何比较两个对象
113 1
|
Nacos 微服务
Zookeeper 的 ZAB 协议 以及 zookeeper 与 nacos 注册中心比对
Zookeeper 的 ZAB 协议 以及 zookeeper 与 nacos 注册中心比对
412 4
|
存储 Ubuntu 安全
在Ubuntu 18.04上安装和配置Nextcloud的方法
在Ubuntu 18.04上安装和配置Nextcloud的方法
563 0
|
应用服务中间件 nginx
ThreeJs导入外部3D模型
这篇文章详细介绍了如何在Three.js中导入并显示外部的3D模型,包括所需的准备工作和具体实现步骤。
1169 0
|
机器学习/深度学习 人工智能 计算机视觉
LabVIEW中使用opencv快速实现视频的读写
LabVIEW中使用opencv快速实现视频的读写
896 0
LabVIEW中使用opencv快速实现视频的读写

热门文章

最新文章