zoukankan      html  css  js  c++  java
  • 树的查找

    #include<stdio.h>
    #include<stdlib.h>
    
    //树的定义(结点定义)
    typedef char DataType;
    typedef struct Node {
         DataType  data; 
         struct  Node  *lchild; 
         struct  Node  *rchild;                   
    } BiNode,*BiTree;
    
    //创建树的二叉链表(递归)
    void CreateBiTree(BiTree *bt)
    {
        char ch;
        ch = getchar();
        if(ch=='.') *bt=NULL;
        else 
        {
            *bt= (BiNode *)malloc(sizeof(BiNode)); 
            (*bt)->data=ch;
             CreateBiTree(&((*bt)->lchild)); //生成左子树
             CreateBiTree(&((*bt)->rchild)); //生成右子树
        }
    }
    
    //输出二叉树的元素(先序)
    void Print(BiTree bt)
    {
        if(bt==NULL)    
            return;
        else
        {
            printf("%c ", bt->data);
            Print(bt->lchild);
            Print(bt->rchild);
        }
    
    }
    
    int find(BiTree bt,int h,char a)
     {
        int t;
        if(bt)
        {
            if(a==bt->data)
                return h;
            t=find(bt->lchild,h+1,a);           //再次调用函数,层数加一,到左孩子结点。
            if(t!=0)
                return t;
            else
                return find(bt->rchild,h+1,a); //再次调用函数,层数加一,到右孩子结点。
        }
            return 0;
    
     }
    
    
    
    //主函数
    void main()
    {
        int l=1;
        BiTree T;
        printf("请输入二叉树:");
        CreateBiTree(&T);
        char ch;
        printf("请输入要查找的结点:");
        getchar();
        ch = getchar();
        Print(T);
        printf("
    %d
    ",find(T,l,ch));
    }
  • 相关阅读:
    解决FileReader读取文件乱码问题
    comparable 与 comparator
    JavaScript添加水印
    mybatis里oracle与MySQL的insert_update
    关于回车换行
    solr创建collection
    hbase相关配置说明
    java基础(十一)--- IO
    java基础(十)--- 异常
    c++中的vector原理
  • 原文地址:https://www.cnblogs.com/szq1214869/p/13073608.html
Copyright © 2011-2022 走看看