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  
    **************************************/

  • 相关阅读:
    linux mint 17编译android 2.3.1错误记录
    android字母索引实现ListView定位
    android实现emoji输入
    shell管道与重定向
    c3p0配置记录
    ubuntu13 eclipse菜单栏失效解决
    Proxy实现java动态代理
    ubuntu13启动屏幕亮度0解决方法
    cookie和session笔记
    linux mysql中文乱码解决
  • 原文地址:https://www.cnblogs.com/mthoutai/p/6949579.html
Copyright © 2011-2022 走看看