zoukankan      html  css  js  c++  java
  • 二叉树

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    typedef struct BiTNode
    {
        char date[16];
        struct BiTNode *lchild,*rchild;
    }BiTNode,*BiTree;
    
    void INS(BiTree &Q,char *a)
    {
        BiTree S;
        if(!Q)
        {
            S=new BiTNode;
            strcpy(S->date,a);
            S->lchild=S->rchild=NULL;
            Q=S;
        }
        else if(strcmp(Q->date,a))
            INS(Q->lchild,a); 
        else if(strcmp(a,Q->date))
            INS(Q->rchild,a);
    }
    
    //创建二叉树
    void creB(BiTree &Q)
    {
        Q=NULL;//chu shi hua
        char a[16];
        while(~scanf("%s",a)&&a[0]!='#')
        {
            INS(Q,a);
        }
    }
    
    
    void priB(BiTree Q)
    {
        if(Q)
        {
            priB(Q->lchild);
            priB(Q->rchild);
            printf("%s ",Q->date);
        }
    }
    int main()
    {
        BiTree T;
        creB(T);
        priB(T);
        return 0;
    }
    
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    typedef struct BiTNode
    {
      int d;
      char date[16];
      struct BiTNode *lchild,*rchild;
    } BiTNode,*BiTree;
    char key[16];
    
    void INS(BiTree &Q,char *a,int n)
    {
      BiTree S;
      if(!Q)
      {
        S=new BiTNode;
        strcpy(S->date,a);
        S->d=n;
        S->lchild=S->rchild=NULL;
        Q=S;
      }
      else if(strcmp(Q->date,a))
        INS(Q->lchild,a,n);
        else if(strcmp(a,Q->date))
        INS(Q->rchild,a,n);
      }
    
    //创建
    void creB(BiTree &Q)
    {
      Q=NULL;//chu shi hua
      char a[16];
      int i=0;
      while(~scanf("%s",a)&&a[0]!='#')
      {
        INS(Q,a,i++);
      }
    }
    
    
    void priB(BiTree Q)
    {
      if(Q)
      {
        priB(Q->lchild);
        priB(Q->rchild);
        printf("%s ",Q->date);
      }
    }
    
    BiTree fin(BiTree Q,char *x)
    {
      BiTree p=NULL;
      if(Q)
      {
        if(strcmp(Q->date,key)==0)
          p=Q;
        else if(strcmp(Q->date,key)<0)
          p=fin(Q->rchild,key);
        else
          p=fin(Q->lchild,key);
      }
      return p;
    }
    
    int main()
    {
      BiTree K;
      BiTree T;
      creB(T);
      priB(T);
      printf("
    ");
      while(scanf("%s",key)&&key[0]!='#')
      {
        K=fin(T,key);
        if(K)
        printf("%s
    ",K->date);
      }
      return 0;
    }
  • 相关阅读:
    window.location.reload();页面实现跳转和刷新
    vue自定义指令--directive
    1019 数字黑洞
    1018 锤子剪刀布
    1017 A除以B
    1016 部分A+B
    1015 德才论
    1014 福尔摩斯的约会
    1013 数素数
    1012 数字分类
  • 原文地址:https://www.cnblogs.com/1328497946TS/p/11066022.html
Copyright © 2011-2022 走看看