二叉树的简历和求叶子和深度

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>


typedef struct node{
    char data ;
    struct node * lchild;
    struct node * rchild;
}BiTree;


BiTree * CreatTree();
int Count(BiTree * );
void Preorder(BiTree *);


int main(){
    BiTree * top = NULL;
    top = CreatTree();
    printf("遍历结果: ");
    Preorder(top);
    putchar('\n');
    printf("叶子节点的个数: %d\n",Count(top));


    system("pause");
    return 0;
}


 BiTree * CreatTree(){


    BiTree *t;
    char ch ;
    ch = getchar();
    if (ch != '#'){
            t = (BiTree *)malloc(sizeof(BiTree));
            t ->data = ch ;
            t->lchild = CreatTree();
            t->rchild = CreatTree();
        }
        else{
            t=NULL;
        }
        return t;
}
int Count(BiTree * top){
    if(top == NULL){
        return 0;
    }
    else if ((top->lchild==NULL) && (top->rchild==NULL)){
        return 1;
    }
    else{
        return Count(top->lchild)+Count(top->rchild);
    }
}


void Preorder(BiTree * top ){
    if(top != NULL){
        printf("%c ",top->data);
        Preorder(top->lchild);
        Preorder(top->rchild);
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值