zoukankan      html  css  js  c++  java
  • 数据结构重建二叉树

    重建二叉树,知道先序和中序   输出二叉树的后序。。

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    
    using namespace std;
    
    const int M = 1005;
    
    int i,j,k;
    
    int Max (int x ,int y)
    {
    return x>y?x:y ;
    }
    
    void build(int n,char *s1,char *s2)
    {
        if(n<=0) return ;
        int p = strchr(s2,s1[0]) - s2; //找到根节点在中序遍历中的位置
        build(p,s1+1,s2);
        build(n-p-1,s1+p+1,s2+p+1);
        printf("%c",s1[0]);
    }
    
    int main ()
    {
        char s1[30],s2[30];
        scanf("%s%s",s1,s2);
        int len = strlen(s1);
        build(len,s1,s2);
    
    return 0;
    }
    View Code

    下面是NYOJ上的数据结构的一道题,知道中序和后序 求先序。。之前看什么指针真是醉了,不过昨天复习数据结构的时候,还是将它用结构体和指针实现了

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cstdlib>
    
    using namespace std;
    
    const int M = 1005;
    
    typedef struct BTNode
    {
        char data;
        BTNode  *lchild,*rchild;
    };
    
    BTNode *Creat(char *post,char *in ,int n)
    {
        BTNode *s;
        char r,*p;
        int k;
        if(n<=0) return NULL;
        r = *(post + n-1);
        s = (BTNode *)malloc(sizeof(BTNode));
        s->data = r;
        for(p=in;p<in+n;p++){
            if(*p == r) break;
        }
        k = p - in;
        s->lchild = Creat(post,in,k);
        s->rchild = Creat(post+k,p+1,n-k-1);
        return s;
    }
    
    void pre(BTNode *s)
    {
        if(s!=NULL){
              printf("%c",s->data);
              pre(s->lchild);
              pre(s->rchild);
    
    
        }
    }
    
    int main ()
    {
      char s1[30],s2[30];
      BTNode *p;
      while(scanf("%s%s",s1,s2)!=EOF){
      int len = strlen(s1);
     p = Creat(s1,s2,len);
      pre(p);
      printf("
    ");
      }
    
    return 0;
    }
    It is loneliness that make you different,not gregariousness
  • 相关阅读:
    MVC NonAction属性
    未将对象引用设置到对象的实例
    回调函数callback
    Json详解
    浅谈HTTP中Get与Post的区别
    JQuery $.ajax()方法详解
    C#中Const和Readonly的区别
    全面解释StringBuilder、StringBuffer和String的关系
    基本数据类型的包装类和随机数
    枚举类的使用
  • 原文地址:https://www.cnblogs.com/lmlyzxiao/p/4193366.html
Copyright © 2011-2022 走看看