欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

统计C语言二叉树中叶子结点个数

时间:2022-12-31 12:20:56|栏目:C代码|点击:

树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因
为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的,下面我们就用简单小栗子来简单说明关于统计C语言二叉树中叶子结点个数的方法吧

简单小栗子:

#include<stdio.h>
#include<stdlib.h>
 
typedef char ElemType;
typedef struct BTNode
{
    ElemType data;
    struct BTNode *left;
    struct BTNode *right;
}BTNode,*BiTree;
 
//创建二叉树
void createBTNode(BiTree &BT)
{
    ElemType ch;
    scanf("%c",&ch);
    if(ch==' ')
        BT=NULL;
    else
    {
        BT = (BTNode*)malloc(sizeof(BTNode));
        BT->data= ch;
        createBTNode(BT->left);
        createBTNode(BT->right);
    }
}
 
//先序遍历二叉树
void printDLR(BiTree BT)
{
    if(BT)
    {
        printf("%c ",BT->data);
        printDLR(BT->left);
        printDLR(BT->right);
    }
}
 
//统计二叉树结点个数
void countLeaves(BiTree BT,int &count)
{
    if(BT)
    {
        if(BT->left==NULL && BT->right==NULL)
        count++;
        else{
            countLeaves(BT->left,count);
            countLeaves(BT->right,count);
        }
    }
}
 
void main()
{
    BTNode *BT;
    int count=0;
    createBTNode(BT);
    printf("先序遍历:");
    printDLR(BT);
    printf("\n");
    countLeaves(BT,count);
    printf("二叉树结点的个数:%d\n",count);
}

按照先序遍历的方式来输入二叉树结点,若孩子结点为空,则输入空格。

输入:

ABD  E  CF

返回结果:

先序遍历:A B D E C F

二叉树结点的个数:3

叶子结点分别是:D、E、F

上一篇:基于C语言实现学生管理系统

栏    目:C代码

下一篇:没有了

本文标题:统计C语言二叉树中叶子结点个数

本文地址:http://www.codeinn.net/misctech/222633.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有