社区
新手乐园
帖子详情
统计二叉树1度结点的个数的算法.请各位帮忙.
bookoo
2008-12-11 10:49:23
不知道从哪里入手,请指点.
...全文
662
5
打赏
收藏
统计二叉树1度结点的个数的算法.请各位帮忙.
不知道从哪里入手,请指点.
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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,返回左右子树度为一之和
}
编写递归
算法
,计算
二叉树
中叶子
结点
的数目
编写递归
算法
,计算
二叉树
中叶子
结点
的数目
数据结构与
算法
实验(C++):
二叉树
实验-代码
1.内容概要: (1)实验目的: 1)熟练掌握二叉链的存储特点; 2)熟练掌握
二叉树
的基本操作; 3)熟练掌握基于二叉链的
二叉树
操作
算法
实现; 4)能灵活使用
二叉树
解决具体的问题。 (2)实验内容: 1)定义二叉链类,实现
二叉树
的基本操作
算法
; 2)在主函数中定义对象,并调用成员函数,验证二叉链的基本操作。具体包括: a.建立二叉链存储的
二叉树
b.遍历
二叉树
:前序、中序、后序和层序 c.求
二叉树
的深
度
d.交换
二叉树
所有
结点
的左右子树 e.
统计
二叉树
叶子
结点
的
个数
f.前序次序打印
二叉树
的叶子
结点
g.计算
二叉树
的最大宽
度
。即
结点
数目最多的那一层的
结点
个数
h.非递归的方式先序或者后序遍历
二叉树
注:操作
算法
可不局限于以上内容。 2.适用人群: 数据结构与
算法
初学者;C++编译基本掌握 3.使用场景: 数据结构与
算法
实验
/*建立
二叉树
后写出各种遍历
算法
,
统计
各类
结点
个数
并求树的深
度
/*建立
二叉树
后写出各种遍历
算法
,
统计
各类
结点
个数
并求树的深
度
(1)仅输出中序遍历第K个元素
算法
(奖励1分) (2)编写求某个
结点
在树中层数
算法
(奖励2分) (3)已知中序和后序建立树结构(奖励3分)*/
c++数据结构
二叉树
数据结构课程设计 1. 创建
二叉树
的链表存储结构; 2. 实现二叉链表的初始化
算法
、
二叉树
空的判断
算法
; 3. 实现
二叉树
的先序遍历
算法
、中序遍历
算法
和后序遍历
算法
; 4. 利用某遍历
算法
实现计算
二叉树
中叶子
结点
、
度
为2的
结点
和
度
为1的
结点
的
个数
。 5. 求
二叉树
中
结点
个数
。 6. 求
二叉树
的深
度
。 7. 设计一个
算法
,求
二叉树
中指定
结点
x的层数。 8. 设计一
算法
,求先序遍历序列中第k个
结点
的左右孩子。 9. 求
结点
x的所有祖先。
求一棵
二叉树
的深
度
和双分支
结点
的
个数
。
利用
二叉树
的二叉链表存储结构求解
二叉树
的深
度
和双分支
结点
的
个数
;利用
二叉树
的二叉链表存储结构实现二叉排序树建树和删除操作。 实验内容: 题一:
二叉树
采用二叉链表结构表示。设计并实现如下
算法
:求一棵
二叉树
的深
度
和双分支
结点
的
个数
。
新手乐园
33,321
社区成员
41,774
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章