zoukankan      html  css  js  c++  java
  • 已知二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列

    题目描写叙述
    输入二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列。


    输入
    第一行输入二叉树的先序遍历序列;
    第二行输入二叉树的中序遍历序列。
    输出
    输出该二叉树的后序遍历序列。
    演示样例输入
    ABDCEF
    BDAECF
    演示样例输出
    DBEFCA

    #include <iostream>
    #include <cstring>
    #define MAX 50+3
    using namespace std;
    typedef char Elem_Type;
    typedef struct BiTree
    {
        Elem_Type data;//数据
        struct BiTree *Lchild;//左孩子
        struct BiTree *Rchild;//右孩子
    }BiTree;      //要查找的元素  查找的地方    数组的长度
    int Search_Num(Elem_Type num,Elem_Type *array,int len)
    {
        for(int i=0; i<len; i++)
           if(array[i] == num)
             return i;
        //return -1;//没有找到
    }                     //前序遍历         中序遍历   中序数组长度
    BiTree *Resume_BiTree(Elem_Type *front,Elem_Type *center,int len)
    {
        if(len <= 0)
          return NULL;
        BiTree *temp = new BiTree;
        temp->data = *front;
        int index = Search_Num(*front,center,len);
        temp->Lchild = Resume_BiTree(front+1,center,index);
        temp->Rchild = Resume_BiTree(front+index+1,center+index+1,len-index-1);
        return temp;
    }
    void PostOrderTraverse(BiTree *root)//后序遍历
    {
        if( root != NULL)
        {
            PostOrderTraverse(root->Lchild);
            PostOrderTraverse(root->Rchild);
            cout<<root->data;
        }
    }
    int main(void)
    {
        Elem_Type *preorder = new Elem_Type [MAX];//前序
        Elem_Type *inorder  = new Elem_Type [MAX];//中序
        cin>>preorder;cin>>inorder;
        BiTree *root = Resume_BiTree(preorder,inorder,strlen(inorder));
        PostOrderTraverse(root);
        cout<<endl;
        return 0;
    }
    /**************************************
    	Problem id	: SDUT OJ 1291 
    	User name	: 李俊 
    	Result		: Accepted 
    	Take Memory	: 444K 
    	Take Time	: 0MS 
    	Submit Time	: 2014-05-16 22:52:07  
    **************************************/

  • 相关阅读:
    SDK安卓模拟器CPU/ABI为灰色不显示的解决
    解决c3p0:Connections could not be acquired from the underlying database!
    ORA-12170 TNS 连接超时
    linux下FTP服务器配置-VSFTP
    SecureCRT右键粘贴的设置
    JDK1.6官方下载_JDK6官方下载地址
    Unsupported major.minor version 51.0解决办法
    Oracle按周统计数据的几种方法
    org.apache.mina.filter.codec.ProtocolDecoderException: java.nio.BufferOverflowException解决
    Linux中JDK1.6的安装和配置方法
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7016124.html
Copyright © 2011-2022 走看看