• HihoCoder第十周:后序遍历


    也就在大二学数据结构的时候知道了树的前序遍历、后序遍历、中序遍历。之后就忘了,在之后就是大四研究生老师考我,我当时还不知道,真够丢人的。自此之后,知道了如何通过其中两个得到第三个,但是也没有编程实现过,也是通过这一题体会了以下通过递归来求遍历,挺有意思的。自己写的很有收获。

    #1049 : 后序遍历

    时间限制:10000ms

    单点时限:1000ms

    内存限制:256MB

    描述

    在参与过了美食节之后,小Hi和小Ho在别的地方又玩耍了一阵子,在这个过程中,小Ho得到了一个非常有意思的玩具——一棵由小球和木棍连接起来的二叉树

    Ho对这棵二叉树爱不释手,于是给它的每一个节点都标记了一个标号——一个属于A..Z的大写字母,并且没有任意两个节点的标号是一样的。小Hi也瞅准了这个机会,重新巩固了一下小Ho关于二叉树遍历的基础知识~就这样,日子安稳的过了两天。

    这天,小Ho正好在求解这棵二叉树的前序、中序和后序遍历的结果,但是却在求出前序遍历和中序遍历之后不小心把二叉树摔到了地上,小球和木棍等零件散落了一地!

    Ho损失了心爱的玩具,正要嚎啕大哭起来,所幸被小Hi发现了,劝说道:别着急,这不是零件都还在么?拼起来不就是了?

    可是我忘记了二叉树长什么样子了!Ho沮丧道。

    这个简单,你不是刚刚求出了这棵二叉树的前序和中序遍历的结果么,利用这两个信息就可以还原出整棵二叉树来哦!

    这样么?!!Ho止住了泪水,问道:那要怎么做呢?

    没错!小Ho在这一周遇到的问题便是:给出一棵二叉树的前序和中序遍历的结果,还原这棵二叉树并输出其后序遍历的结果。

    输入

    每个测试点(输入文件)有且仅有一组测试数据。

    每组测试数据的第一行为一个由大写英文字母组成的字符串,表示该二叉树的前序遍历的结果。

    每组测试数据的第二行为一个由大写英文字母组成的字符串,表示该二叉树的中序遍历的结果。

    对于100%的数据,满足二叉树的节点数小于等于26

    输出

    对于每组测试数据,输出一个由大写英文字母组成的字符串,表示还原出的二叉树的后序遍历的结果。

    样例输入

    AB

    BA

    样例输出

    BA


    代码:

    #include <iostream>
    #include <string>
    #include <cstring>
    
    using namespace std;
    
    string post_order(string str1,string str2)
    {
    	char root = str1[0];
    
    	int index = str2.find_first_of(root);
    
    	if(index!=-1)
    	{
    		string zuozhong = str2.substr(0,index);
    		string youzhong = str2.substr(index+1,str2.length()-index);
    
    		string zuoqian = str1.substr(1,zuozhong.length());
    		string youqian = str1.substr(1+zuozhong.length());
    
    		return post_order(zuoqian,zuozhong)+post_order(youqian,youzhong)+root;
    
    	}
    	else
    	{
    		return "";
    	}
    }
    int main()
    {
    
    	string qian,zhong;
    	cin>>qian>>zhong;
    
    	cout<<post_order(qian,zhong)<<endl;
    
    	
    	return 0;
    }
    


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    开源项目
    ASP.NET上传文件带有真实的进度条
    VS2010不能调试的问题
    sql server 2005中获取数据库个数
    【转载】Nios II DMA: memory to memory
    【转】我们为什么要实习
    【转】应聘时最漂亮的回答
    【转】面试建议 每个要找工作的童鞋必看~
    【转载】FPGA Verilog HDL 系列实例 电子琴 电子钟
    【转】关于工作与生活 HP大中华区总裁孙振耀的退休感言
  • 原文地址:https://www.cnblogs.com/lightspeedsmallson/p/4785900.html
Copyright © 2020-2023  润新知