• 九度OJ 1078 二叉树遍历


    题目地址:http://ac.jobdu.com/problem.php?pid=1078

    题目描述:

    二叉树的前序、中序、后序遍历的定义:
    前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树;
    中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树;
    后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。
    给定一棵二叉树的前序遍历和中序遍历,求其后序遍历(提示:给定前序遍历与中序遍历能够唯一确定后序遍历)。

    输入:

    两个字符串,其长度n均小于等于26。
    第一行为前序遍历,第二行为中序遍历。
    二叉树中的结点名称以大写字母表示:A,B,C....最多26个结点。

    输出:

    输入样例可能有多组,对于每组测试样例,
    输出一行,为后序遍历的字符串。

    样例输入:
    ABC
    BAC
    FDXEAG
    XDEFAG
    样例输出:
    BCA
    XEDGAF

    重建二叉树

    /*
     * Main.c
     *
     *  Created on: 2014年1月27日
     *      Author: Shaobo
     */
    #include <stdio.h>
    #include <string.h>
     
    void to_post(char pre[], char in[], char post[], int len){
        int i;
     
        if (len <= 0)
            return;
     
        for (i=0; i<len; ++i)
            if (in[i] == pre[0])
                break;
        post[len-1] = pre[0];
        to_post (pre+1, in, post, i);
        to_post (pre+i+1, in+i+1, post+i, len-i-1);
    }
     
    int main(void){
        char pre[30], in[30], post[30];
        int len;
     
        while (scanf ("%s", pre) != EOF){
            scanf ("%s", in);
            len = strlen (pre);
            to_post (pre, in, post, len);
            post[len] = '';
            printf ("%s
    ", post);
        }
     
        return 0;
    }
    
  • 相关阅读:
    SCM基础之系统核心功能
    事件记录与变更请求
    SCM基础之配置管理功能
    SCM基础之好处
    SCM基础之配置管理实施
    善其事 利其器:快速制作SEO索引
    深入浅出之正则表达式(二)
    C# 读写文件方法总结
    C#常用正则式整理
    C#正则表达式类Match和Group类的理解
  • 原文地址:https://www.cnblogs.com/liushaobo/p/4373850.html
Copyright © 2020-2023  润新知