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;
    }
    

      

  • 相关阅读:
    【idea-部署web项目】
    【IDEA下使用tomcat部署web项目】
    【 PLSQL Developer安装、tnsnames.ora配置 解答】
    【idea--git】
    【Sping管理bean的原理】
    【关于eclipse的一些自己常用的插件】
    【Spring-任务调度】
    【mysql存储引擎】
    【mysql-索引+存储过程+函数+触发器-更新。。。】
    【转-mysql-explain介绍】
  • 原文地址:https://www.cnblogs.com/coodyz/p/10825828.html
Copyright © 2011-2022 走看看