zoukankan      html  css  js  c++  java
  • codevs 2010 求后序遍历

    时间限制: 1 s空间限制: 64000 KB
    题目描述 Description
    输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。
    输入描述 Input Description
    共两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串,表示树的中序遍历。
    输出描述 Output Description
    仅一行,表示树的后序遍历序列。
    样例输入 Sample Input
    abdehicfg
    dbheiafcg
    样例输出 Sample Output
    dhiebfgca
    数据范围及提示 Data Size & Hint
    输入长度不大于255。

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<malloc.h>
     4 typedef char ElemType;
     5 typedef struct node 
     6 {    
     7     ElemType data;            //数据元素
     8     struct node *lchild;    //指向左孩子结点
     9     struct node *rchild;    //指向右孩子结点
    10 } BTNode;
    11 BTNode *CreateBT1(char *pre,char *in,int n)
    12 /*pre存放先序序列,in存放中序序列,n为二叉树结点个数,
    13 本算法执行后返回构造的二叉链的根结点指针*/
    14 {
    15     BTNode *s;
    16     char *p;
    17     int k;
    18     if (n<=0) return NULL;
    19     s=(BTNode *)malloc(sizeof(BTNode));        //创建二叉树结点*s
    20     s->data=*pre;
    21     for (p=in;p<in+n;p++)                    //在中序序列中找等于*ppos的位置k
    22         if (*p==*pre)                        //pre指向根结点
    23             break;                            //在in中找到后退出循环
    24     k=p-in;                                    //确定根结点在in中的位置
    25     s->lchild=CreateBT1(pre+1,in,k);        //递归构造左子树
    26     s->rchild=CreateBT1(pre+k+1,p+1,n-k-1); //递归构造右子树
    27     return s;
    28 }
    29 void PostOrder(BTNode *b) /*后序遍历递归算法*/
    30 {
    31     if (b!=NULL)  
    32     {
    33         PostOrder(b->lchild);
    34         PostOrder(b->rchild);
    35         printf("%c",b->data); /*访问根结点*/
    36     }
    37 }
    38 int main(int argc, char *argv[])
    39 {
    40     freopen("2010.in","r",stdin);
    41     char pre[260],in[260];
    42     BTNode *root;
    43     
    44     scanf("%s%s",pre,in);
    45     root=CreateBT1(pre,in,strlen(in));
    46     PostOrder(root);
    47     return 0;
    48 }
  • 相关阅读:
    Python—模块
    Python之路_Day5
    Python之路_Day4
    Py获取本机指定网卡的ip地址
    Python之路_Day3
    Python之路—Day2作业
    Python之路—Day2
    Python之路—Day1作业
    Python之路—Day1
    Python数据类型
  • 原文地址:https://www.cnblogs.com/huashanqingzhu/p/7193251.html
Copyright © 2011-2022 走看看