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

    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    char ch;
    typedef struct BitNode{
        char data;
        struct BitNode *lchid, *rchid;
    }BitNode, *BitTree;
    
    void Create_BitTree(BitTree &T){
        if(ch == '
    ')
            return;
        scanf("%c", &ch);
        if(ch == '#')
            T = NULL;
        else{
            T=(BitTree)malloc(sizeof(BitNode));
            T->data=ch;
            Create_BitTree(T->lchid);
            Create_BitTree(T->rchid);
        }
    }
    
    void Pre_Order(BitTree &T){
        if(T) {
            printf("%c ", T->data);
            Pre_Order(T->lchid);
            Pre_Order(T->rchid);
        }
    }
    
    void In_Order(BitTree &T){
        if(T){
            In_Order(T->lchid);
            printf("%c ", T->data);
            In_Order(T->rchid);
        }
    }
    
    void Post_Order(BitTree &T){
        if(T){
            Post_Order(T->lchid);
            Post_Order(T->rchid);
            printf("%c ", T->data);
        }
    }
    
    int TreeNode(BitTree &T){
        if(T){
            return TreeNode(T->lchid) + TreeNode(T->rchid) + 1;
        }
        return 0;
    }
    
    int Leaf(BitTree &T){
        if(T==NULL) return 0;
        else if(!T->lchid&&!T->rchid) return 1;
        else return Leaf(T->lchid) + Leaf(T->rchid);
    }
    
    int BitTreeDepth(BitTree &T){
        int m, n;
        if(!T) return 0;
        else{
            m = BitTreeDepth(T->lchid);
            n = BitTreeDepth(T->rchid);
            if(m > n) return(m + 1);
            else return(n+1);
        }
    }
    // XAC#D##B##EF###
    int main(){
        BitTree T;
        Create_BitTree(T);
        printf("PreOrder:
    ");
        Pre_Order(T);
        printf("
    InOrder
    ");
        In_Order(T);
        printf("
    PostOrder
    ");
        Post_Order(T);
        printf("
    TreeNode num:
    %d
    ", TreeNode(T));
        printf("
    BitTree Depth:
    %d
    ", BitTreeDepth(T));
        printf("
    BitTree Leaf:
    %d
    ", Leaf(T));
        return 0;
    }
    

      

  • 相关阅读:
    Java基础之开发工具Eclipse的使用
    Java基础之身份证验证
    如何理解“程序=算法+数据结构”这句话
    JDBC
    Java与其它语言的比较
    Java整体之JavaEE
    Java项目之项目模板(登录注册)
    二进制
    计算机发展历程
    Spring错误:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.Bi
  • 原文地址:https://www.cnblogs.com/coodyz/p/10825828.html
Copyright © 2011-2022 走看看