【数据结构】(二叉树)递归求解双分支结点个数
算法思想: 求二叉树双分支结点个数就是当一个结点左右孩子非空
时该结点为双分支结点
//二叉树结构体定义
typedef struct BiTree{char data;BiTree *lchild;BiTree *rchild;}BiTree;
int DsonNodes(BiTree *T){if(!T){return 0;}if(T->rchild!=NULL && T->lchild!=NULL) //若结点的左右孩子存在return 1+DsonNodes(T->rchild)+DsonNodes(T->lchild);elsereturn DsonNodes(T->rchild)+DsonNodes(T->lchild);}
测试数据:
char pre[13]={'#','A','B','D','F','H','J','M','N','C','E','K','G'};char in[13]={'#','D','B','J','H','M','N','F','A','E','K','C','G'};char pre1[10]={'#','A','B','C','D','E','F','G','H','I'};char in1[10]={'#','B','C','A','E','D','G','H','F','I'};char pre2[6]={'#','A','B','D','E','C'};char in2[6]={'#','D','B','E','A','C'};char pre3[5]={'#','A','B','D','C'};char in3[5]={'#','D','B','A','C'};cout<<"The number of double-branch nodes is: "<<DsonNodes(PreInCreate(pre,in,1,12,1,12))<<endl;cout<<"The number of double-branch nodes is: "<<DsonNodes(PreInCreate(pre3,in3,1,4,1,4))<<endl;cout<<"The number of double-branch nodes is: "<<DsonNodes(PreInCreate(pre1,in1,1,9,1,9))<<endl;
结果:
【数据结构】(二叉树)递归求解双分支结点个数相关推荐
- 计算二叉树的叶子结点个数_C++数据结构二叉树统计总结点个数,叶子结点个数,单分支结点个数,双分支结点个数。...
很多书上其实都有提到和该算法.但是经过自己的学习我自己想到一个算法.算是结合了其中的优点吧. 算法描述:该算法递归去统计结点个数.值得一提的是该系列算法都是统计根结点以下的符和条件的结点的个数进行了加 ...
- 数据结构-二叉树[递归实现](构造,析构,先序遍历,中序遍历,后续遍历,层次遍历)
数据结构-二叉树[递归实现] 一.二叉树概念 1.定义 二叉树(Binary Tree)是n(n不小于0)个节点组成的有限集合,且满足以下条件之一 (1)n=0时,为空二叉树(无节点) (2)n> ...
- 树与二叉树——二叉树中计算叶子结点个数问题
1.已知完全二叉树具有967个结点,则其叶子结点个数为: 详解: 首先明确一点该二叉树是一棵二叉树,那可以使用二叉树的一些性质. 从第一层开始计算每层的节点个数:1,2,4,8,16,32,64,12 ...
- 第五期 C/C++数据结构 二叉树的遍历以及结点数、深度
代码详见后面 实验三 树和二叉树 一.实验目的 1.使学生熟练掌握二叉树的逻辑结构和存储结构(重点). 2.熟练掌握二叉树的各种遍历算法(难点). 二.实验原理及说明 1. 前序遍历算法思想: (1) ...
- 求二叉树b的结点个数、叶子结点个数
#include"tree.cpp" //包含了二叉树的基本算法/*-------- 求二叉树b的结点个数.叶子结点个数 ---------*///求二叉树b的结点个数 int N ...
- 数据结构 - 二叉树 - 面试中常见的二叉树算法题
数据结构 - 二叉树 - 面试中常见的二叉树算法题 数据结构是面试中必定考查的知识点,面试者需要掌握几种经典的数据结构:线性表(数组.链表).栈与队列.树(二叉树.二叉查找树.平衡二叉树.红黑树).图 ...
- 【Java】数据结构---二叉树 详解
快速导航: 1 树形结构 1.1 树形结构 概念 1.2 需要记忆概念 1.3 树的表现形式 2 二叉树 2.1 概念 2.2 两种特殊的二叉树 2.3 二叉树的性质 2.4 相关例题讲解 2.4 二 ...
- 数据结构——二叉树的层次遍历进阶
之前的一个博客 数据结构--二叉树的层次遍历看完这个,可以简单实现下面的问题 问题: 1.计算二叉树的最大宽度(二叉树的最大宽度是指二叉树所有层中结点个数的最大值. 2.用按层次顺序遍历二叉树的方法, ...
- 数据结构--二叉树的实现(C++)
前言 数据结构实验作业--用二叉链表实现二叉树(c++版) 包括二叉树的构建.二叉树的销毁,前序遍历.中序遍历.后序遍历.层序遍历等基本操作. 还有求二叉树的叶子结点个数,二叉树的深度.结点个数等. ...
最新文章
- matlab对一行矩阵fft,MATLAB?fft命令
- MMC检测到此管理单元发生一个错误。建议关闭并重新启动MMC
- 清除被占用的8080端口,否则npm run dev无法正常运行
- IOS开发调用系统相机和打开闪光灯
- 【ruoyi】java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ScheduledThreadPoo
- python截取指定字符串_python 正则匹配获取指定多个词的在字符串(句子/段落)索引位置...
- 有关正则表达式的一些用法总结
- sunplus8202v BIN文件中LOGO的替换工具设计思路
- 新的android包格式,在Android中注册新文件类型
- CentOS系统安装FTP服务器
- uat测试用例和sit测试用例_测试理论——SIT测试 和 UAT测试概念
- 开通慢直播,RTMP协议和RTSP协议如何选择?
- 各种学习资料链接 干货 啃啃啃
- 三菱plc控制步进电机实例_自动化工程师必掌握的PLC控制步进电机逻辑思路
- excel自动排班表_企业人员较多该怎么做考勤管理?该用什么排班软件?
- 一文带你了解助贷行业
- 使用python对单幅图像进行数据增并保存增强后的结果
- 带你玩转序列模型之循环神经网络(一)
- 精准医学: 应用脑脊液游离DNA全基因组甲基化测序筛选小儿髓母细 胞瘤早期诊断与预后监测的可靠生物标志物|液体活检专题
- innodb和myISAM 1075