这篇文章主要介绍的是统计C语言二叉树中叶子结点个数,文章以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语言二叉树中叶子结点个数


猜你喜欢
- Easyx实现扫雷游戏 2023-02-06
- C++ 数据结构超详细讲解顺序表 2023-03-25
- C语言手把手带你掌握带头双向循环链表 2023-04-03
- 详解C语言中sizeof如何在自定义函数中正常工作 2023-04-09
- c++ const 成员函数,返回一个 const 指针.但是返回的指针是什么类型的 const? 2022-10-11
- C语言详解float类型在内存中的存储方式 2023-03-27
- 我应该为我的项目使用相对包含路径,还是将包含目录放在包含路径上? 2022-10-30
- Qt计时器使用方法详解 2023-05-30
- ubuntu下C/C++获取剩余内存 2023-09-18
- C语言qsort()函数的使用方法详解 2023-04-26