统计C语言二叉树中叶子结点个数
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因
为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的,下面我们就用简单小栗子来简单说明关于统计C语言二叉树中叶子结点个数的方法吧
简单小栗子:
#include#include 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= https://www.it610.com/article/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); }
按照先序遍历的方式来输入二叉树结点,若孩子结点为空,则输入空格。
输入:
ABDECF
【统计C语言二叉树中叶子结点个数】返回结果:到此这篇关于统计C语言二叉树中叶子结点个数的文章就介绍到这了,更多相关统计二叉树中叶子结点个数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
先序遍历:A B D E C F
二叉树结点的个数:3
叶子结点分别是:D、E、F
推荐阅读
- 程序人生|初学者如何选择编程语言和开发方向(非常详细)
- C语言|推荐一些嵌入式、C/C++的开源库和项目
- C/C++开源库|日志系统模块基础、C语言实现一个日志模块、zlog日志模块基础
- Java数据结构超详细分析二叉搜索树
- 数据库|比SQL还好用,又一门国产数据库语言诞生了
- C语言|手把手教如何搭建Linux环境(搭建云服务器) (Linux基础篇p1)
- C语言教学|初识C语言(2)
- Java实现二叉搜索树的插入、删除功能
- c语言运行时内存不够,浅析C语言运行时内存管理
- c语言|数据结构3--深入了解单向链表的实现