zoukankan      html  css  js  c++  java
  • 根据后序遍历和中序遍历创建二叉树(代码)

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #define SIZE 100
    typedef char ElemType;
    //声明二叉树结构体
    typedef struct node
    {
        ElemType data;
        struct node *lchild,*rchild;
    }BitTree;
    
    BitTree *createBinTreeByPostIn(char *post,char *in,int number)
    {
        if(number==0) return NULL;
        char c = post[number-1];
        int i = 0;
        while(in[i]!=c && i < number)i++;
        int leftNumber = i;
        int rightNumber = number - i - 1;
        BitTree *node = (BitTree *)malloc(sizeof(BitTree));
        node->data = c;
        node->lchild = createBinTreeByPostIn(&post[0],&in[0],leftNumber);
        node->rchild = createBinTreeByPostIn(&post[leftNumber],&in[i+1],rightNumber);
        return node;
    }
    
    void PreOrder(BitTree *bt)
    {
        if(bt!=NULL)
        {
            printf("%c ",bt->data);
            PreOrder(bt->lchild);
            PreOrder(bt->rchild);
        }
    }
    int main(int argc,char **argv)
    {
        char a[SIZE],b[SIZE];
        BitTree *p;
        while(scanf("%s%s",a,b)!=EOF)
        {
            p = createBinTreeByPostIn(a,b,strlen(a));
            PreOrder(p);
            printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    nginx 按天生成日志
    cmder
    EXCEL最大行数问题:org.apache.xmlbeans.impl.store.Saver$TextSaver.resize(Saver.java:1700)
    nginx configure 错误记录
    Flume NetCat Demo
    Flume
    hbase
    kafka安装配置
    azkaban
    sqoop
  • 原文地址:https://www.cnblogs.com/wzqstudy/p/10083159.html
Copyright © 2011-2022 走看看