zoukankan      html  css  js  c++  java
  • 中+后构建二叉树

    #include<iostream>
    #include<stdio.h>
    #include<stdlib.h>
    using namespace std;
    #define N 10000000
    struct BTNode{
        char data;
        BTNode *lchild;
        BTNode *rchild;
    }BTNode;
    char IN[N],POST[N];
    struct BTNode *nil=NULL;
    struct BTNode *CreatTree(char IN[],char POST[],int l1,int r1,int l2,int r2)
    {
        if(l1>r1)
        {
            return nil;
        }
        struct BTNode *T=(struct BTNode *)malloc(sizeof(BTNode));
        T->lchild=nil; T->rchild=nil;
        T->data=POST[r2];
        int i;
        for(i=l1;i<=r1;i++)
        {
            if(IN[i]==POST[r2])
                break;
        }
        T->lchild=CreatTree(IN, POST, l1, i-1, l2, l2+i-1-l1);
        T->rchild=CreatTree(IN, POST, i+1, r1, l1+i-l2, r1-1);
        return T;
    }
    int main()
    {
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            cin>>IN[i];
        for(int i=1;i<=n;i++)
            cin>>POST[i];
        CreatTree(IN,POST,1,n,1,n);
        
        return 0;
    }
  • 相关阅读:
    MTV和MVC的区别
    django权限之二级菜单
    Python PEP8代码书写规范
    form表单
    forms组件
    Django的用户认证组件
    Django的分页
    cookie session
    文件上传
    ORM多表操作上
  • 原文地址:https://www.cnblogs.com/2014slx/p/11341079.html
Copyright © 2011-2022 走看看