社区
新手乐园
帖子详情
统计二叉树1度结点的个数的算法.请各位帮忙.
bookoo
2008-12-11 10:49:23
不知道从哪里入手,请指点.
...全文
700
5
打赏
收藏
统计二叉树1度结点的个数的算法.请各位帮忙.
不知道从哪里入手,请指点.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zzbaiyanli
2012-05-30
打赏
举报
回复
template<class T>
int BiTree<T>::CountOne(BiNode<T>* root)
{
int n=0;
if(root==NULL) return 0;
else if((root->lchild==NULL&&root->rchild!=NULL) ||(root->lchild!=NULL&&root->rchild==NULL)) n=1;
return CountOne(root->lchild)+CountOne(root->rchild)+n;
}
shyli
2008-12-11
打赏
举报
回复
是求叶子结点吗?
DFS二叉树,如果某个结点的左右孩子指针都为空,该结点就是叶子结点了。
wzg112
2008-12-11
打赏
举报
回复
up
bookoo
2008-12-11
打赏
举报
回复
[Quote=引用 2 楼 CPlusPlusFans 的回复:]
设度为0的结点数为n0,度为1的为n1,度为2的为n2,总结点数为n
n0=n2+1,这是定理
n=n0+n1+n2,一般情况下n,即总数是已知的
由此发现n0与n2还是无法求得,也就是通过公式是无法直接求得n1的。
所以只能使用遍历算法
int countN1(TreeNode node)
{
int l=0,r=0;
if (node.lchild==null && node.rchild==null) return 0;//叶子节点不计数
else if (node.lchild==null && node.rchild!=null) retur…
[/Quote]
也是这么考虑的:用定理是一种方法/
因为直接用算法求:不知道怎么入手/
谢谢指点
CPlusPlusFans
2008-12-11
打赏
举报
回复
设度为0的结点数为n0,度为1的为n1,度为2的为n2,总结点数为n
n0=n2+1,这是定理
n=n0+n1+n2,一般情况下n,即总数是已知的
由此发现n0与n2还是无法求得,也就是通过公式是无法直接求得n1的。
所以只能使用遍历算法
int countN1(TreeNode node)
{
int l=0,r=0;
if (node.lchild==null && node.rchild==null) return 0;//叶子节点不计数
else if (node.lchild==null && node.rchild!=null) return 1+countN1(node.rchild);//有右子树,本身又是度为1
else if (node.lchild!=null && node.rchild==null) return 1+countN1(node.lchild);//有左子树,本身又是度为1
else return countN1(node.lchild)+count(node.rchild);//度为2,返回左右子树度为一之和
}
统计
二叉树
度
为0、1、2的
结点
二叉树
数据结构定义 typedef struct BiTNode { int data; struct BiTNode *lchild, *rchild; }BiTNode, *BiTree;
统计
二叉树
中
度
为0的
结点
(叶子
结点
) int ConNode_0(BiTree T) { int i = 0; //i记录
度
为0的
结点
(叶子
结点
)数量 if (T) //如果T存在 { if...
统计
二叉树
度
为1的
结点
个数
本题要求实现一个函数,可
统计
二叉树
中
度
为1的
结点
个数
。 函数接口定义: int NodeCount ( BiTree T); T是
二叉树
树根指针,函数NodeCount返回
二叉树
中
度
为1的
结点
个数
,若树为空,返回0。 裁判测试程序样例: #include <stdio.h> #include <stdlib.h> typedef char ElemType; typed...
用层次遍历
二叉树
的方法
统计
二叉树
中
度
为1的
结点
的
个数
在之前的博客中,我们已经掌握了使用辅助队列来实现
二叉树
层次遍历的
算法
. 既然是"遍历",那么
二叉树
中的每个
结点
在一次操作中都会被访问到:基于此,我们对遍历时的操作稍加修改,便可
统计
二叉树
中
度
为1的
结点
的
个数
. (※)这里再说明一下判断
结点
度
是否为1的方法:如果某
结点
的左孩子为空且右孩子不空或左孩子不空且右孩子为空,那么该
结点
的
度
就为1. 根据分...
二叉树
的遍历和
统计
二叉树
中
度
为0、
度
为1、
度
为2的
结点
个数
文章目录实验五 树的应用--
二叉树
的遍历一、实验目的:1、了解
二叉树
的逻辑结构和物理结构;2、掌握
二叉树
数据类型定义;3、熟练掌握
二叉树
在链式存储结构上的遍历操作;二、实验要求:三、实验任务:四、代码如下五、实验结果图 实验五 树的应用–
二叉树
的遍历 一、实验目的: 1、了解
二叉树
的逻辑结构和物理结构; 逻辑结构:1对多的关系,层次关系明显 物理结构:在内存的存储结构,常用的有二叉链表和三叉链表 2、掌握
二叉树
数据类型定义; 3、熟练掌握
二叉树
在链式存储结构上的遍历操作; 深
度
遍历:先序遍历、中序
二叉树
基本操作补充(求
二叉树
中
度
为0/
度
为1/
度
为2的
结点
个数
)
在掌握了
二叉树
的先序遍历递归
算法
、中序遍历递归
算法
和后序遍历递归
算法
的实现流程后,我们稍微开拓一下视野,来看一下该如何求出
二叉树
中
度
为0、
度
为1和
度
为2的
结点
的
个数
. 在设计
算法
之前,我们要弄清什么是"
结点
的
度
". "
结点
的
度
"是指该
结点
孩子的
个数
:如果该
结点
没有孩子,那么该
结点
的
度
为0;如果该
结点
只有左孩子而没有右孩子或只有右孩子而没有左孩子,那么该
结点
的
度
为1...
新手乐园
33,316
社区成员
41,770
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章