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

  • 相关阅读:
    Kotlin基本语法笔记3之定义类、继承及创建实例
    Kotlin基本语法笔记2之类型检测及自动类型转换、循环
    Kotlin基本语法笔记之函数、变量的定义及null检测
    C++笔记之外部类访问内部类的私有成员
    正则表达式之不区分大小写的匹配
    springMVC之helloworld
    数组学习
    反射reflect
    JSP学习
    自己做的菜
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/6758429.html
Copyright © 2011-2022 走看看