• 已知二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列


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


    输入
    第一行输入二叉树的先序遍历序列;
    第二行输入二叉树的中序遍历序列。
    输出
    输出该二叉树的后序遍历序列。
    演示样例输入
    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  
    **************************************/

  • 相关阅读:
    ubuntu删除django和安装django
    linux shell 统计文件单词出现次数
    linux shell $$、$!特殊符号
    linux安装zabbix需要php两个模块php-bcmach与php-mbstring
    linux 源码编译与卸载
    Job for dhcpd.service failed because the control process exited with error code. See "systemctl status dhcpd.service" and "journalctl -xe" for details.问题
    Linux中部署DNS分离解析技术
    NFS网络文件系统服务搭建
    Samba服务搭建
    Linux RAID磁盘阵列技术
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/7016124.html
Copyright © 2020-2023  润新知