数据结构—递归算法求二叉树的叶子结点(C语言)
2021/12/5 12:47:10
本文主要是介绍数据结构—递归算法求二叉树的叶子结点(C语言),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
数据结构—递归算法求二叉树的叶子结点(C语言)
遍历过程采用先序序列。
在构造二叉树时,直接输入二叉树的先序序列,我在注释中有例子。
#include<stdio.h> #include<malloc.h> struct node{ char info; struct node *llink,*rlink; }; typedef struct node NODE; NODE *creat(){ char x; NODE *p; scanf("%c",&x); printf("%c",x); if(x!='.'){//测试输入 ABD..EH...CF.I..G.. . 表示该结点无子树 也就是返回上一层递归 p=(NODE *)malloc(sizeof(NODE)); p->info=x; p->llink=creat(); p->rlink=creat(); } else p=NULL; return p; } int Countleaf(NODE *bt,int count){//计算叶子结点 if(bt!=NULL){//根节点不为空 if(bt->llink==NULL&&bt->rlink==NULL)//左右子树都为NULL 即该结点为叶子结点,count ++ count++; count=Countleaf(bt->llink,count);// 不为空,先去遍历左子树,再次调用Countleaf函数。 count=Countleaf(bt->rlink,count); } return count; } int main(){ NODE *T; int count = 0; printf("PLease input a tree:\n"); T=creat(); printf("\n"); count = Countleaf(T,count); printf("递归算法-->二叉树的叶子结点数为:%d",count); printf("\n"); } 运行结果: PLease input a tree: ABD..EH...CF.I..G.. ABD..EH...CF.I..G.. 递归算法—>二叉树的叶子结点数为:4 -------------------------------- Process exited after 15.37 seconds with return value 0
这篇关于数据结构—递归算法求二叉树的叶子结点(C语言)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-05feign默认connecttimeout和readtimeout是多少-icode9专业技术文章分享
- 2024-07-05idea控制台,日志太多,导致部分想看得日志被刷走 搜不到-icode9专业技术文章分享
- 2024-07-05The server selected protocol version Tls10 is not accepted by client preferences [TLs12]-icode9专业技术文章分享
- 2024-07-05怎么清理项目缓存-icode9专业技术文章分享
- 2024-07-04安装 Eyoucms详细图文教程-icode9专业技术文章分享
- 2024-07-04ueditor 复制文章时,图片的链接是一个下载图片地址,该如何处理?-icode9专业技术文章分享
- 2024-07-04怎样判断host有没有对wordpress有缓存呢-icode9专业技术文章分享
- 2024-07-04具有编译功能的系统make后,无法ssh连接-icode9专业技术文章分享
- 2024-07-04make后如何升级ssh-icode9专业技术文章分享
- 2024-07-03微信支付提示下单账户与支付账户不一致-icode9专业技术文章分享