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;
    }
  • 相关阅读:
    正则表达式
    前端开发工程师
    前端开发工程师
    Java开发工程师(Web方向)
    Java开发工程师(Web方向)
    Java开发工程师(Web方向)
    Java开发工程师(Web方向)
    Java开发工程师(Web方向)
    前端开发工程师
    前端开发工程师
  • 原文地址:https://www.cnblogs.com/wzqstudy/p/10083159.html
Copyright © 2011-2022 走看看