• poj2255


    题目大意:
    树恢复??树复原??
    Valentine非常喜欢玩二叉树的游戏,他非常喜欢在二叉树的树根上随机的写上一下大写字母,这是她创造的一个例子:
                                                   D 
    /
    /
    B E
    /
    /
    A C G
    /
    /
    F

    为了记录它的树为了以后研究,她给每个树写了两个串,一个先序遍历,(根,左子树,右子树)和一个中序遍历(左子树,根,右子树),上图的先序遍历就是DBACEGF 并且中序遍历是ABCDEFG。
    现在她想她有了一对字符串有足够的信息重建那棵树(但是她绝对不会做的)。
    现在多年以后,在一次看到这些字符串,她意识到重建树确实有可能,但是在一个树里面他绝不使用相同的字母两次,但是手工重建很快就变得很乏味。所以现在你需要写一个程序帮助完成这个工作。
    输出树的后续遍历

    分析
    因为树不是完全二叉树,所以应该怎么做呢??
    好吧,先想一下。
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

     #include<stdio.h>

    #include<string.h>
    #define maxn 100
    void Build(char s1[], char s2[], char s[], int n)
    {
        if(n <= 0)
            return ;
        int k = strchr(s2, s1[0]) - s2;
        Build(s1+1, s2, s, k);
        Build(s1+k+1, s2+k+1, s+k, n-k-1);
        s[n-1] = s1[0];
    }
    int main()
    {
        char s[maxn], s1[maxn], s2[maxn];
        while(scanf("%s%s", s1, s2) != EOF)
        {
            int len = strlen(s1);
            Build(s1, s2, s, len);
            s[len] = 0;
            puts(s);
        }
        return 0;
    }
  • 相关阅读:
    JDK5.0新特性系列10.监控与管理虚拟机
    JDK5.0新特性系列7.使用ProcessBuilder执行本地命令
    JDK5.0新特性系列4.静态导入
    JDK5.0新特性系列8.泛型编程
    JDK5.0新特性系列11.2线程 任务执行架构
    JDK5.0新特性系列6.格式化输出
    Request的编码问题,客户端为繁体系统时为乱码解决了。
    智能手机之新手篇[转]
    一篇颇有感触的文章
    修复Oracle9i中DBA的密码
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4383986.html
Copyright © 2020-2023  润新知