社区
数据结构与算法
帖子详情
一个二叉树结点总数的算法
lin15889821971
2015-05-07 05:48:13
typedef struct btNode{
int data;
btNode *lchild;
btNode *rchild;
}btNode;
int count(btNode *T){
if(T){
int m=count(T->lchild);
int n=count(T->rchild);
count=m+n+1;
}
else
count+=0;
}
这个算法对吗?如果对的话,怎么理解这个程序呢?我不明白他是怎么一步步执行的
...全文
970
4
打赏
收藏
一个二叉树结点总数的算法
typedef struct btNode{ int data; btNode *lchild; btNode *rchild; }btNode; int count(btNode *T){ if(T){ int m=count(T->lchild); int n=count(T->rchild); count=m+n+1; } else count+=0; } 这个算法对吗?如果对的话,怎么理解这个程序呢?我不明白他是怎么一步步执行的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
未狂
2016-02-14
打赏
举报
回复
递归是最基本的思想 任何有关数据结构的参考资料里,都有这得计算结点数量的函数
J_Anson
2016-01-17
打赏
举报
回复
http://blog.csdn.net/j_anson 找到二叉树算法,里头有二叉树所有算法的实现,包括求节点总数
ahu9870
2015-05-09
打赏
举报
回复
程序中 count 没有没有见到初始化为 0 吧,不完整
空指针不懂404的忧伤
2015-05-08
打赏
举报
回复
int m=count(T->lchild); 递归左子树, int n=count(T->rchild);递归右子树,,然后一步步合并上去,分治思想。 说明下最后情况,估计你就理解了。 当 int m=count(T->lchild)递归到最左边的时候,他的左节点数为0,右节点为0,因为他是叶子节点,算上他自己,一共是一个。 返回上次递归点,左节点一个+右节点数+他自己,总节点,然后一个个返回递归。
C语言
二叉树
三种遍历
算法
及其广义表表示
C语言
二叉树
三种遍历
算法
及其广义表表示 VS2012编写 基于先序遍历的构造
算法
:输入是
二叉树
的先序序列,但必须在其中加入虚
结点
以示空指针的位置。假设虚
结点
输入时用’.’字符表示。 分别利用先序遍历、中序遍历、后序遍历所建
二叉树
。 求
二叉树
结点
总数
,观察输出结果。 求
二叉树
叶子
总数
,观察输出结果。 交换各
结点
的左右子树,用广义表表示法显示新的
二叉树
数据结构与
算法
1. 掌握
二叉树
的结构特征,以及各种存储结构的特点及适用范围。 2. 掌握用指针类型描述、访问和处理
二叉树
的运算。 1. 输入字符序列,建立二叉链表。 2. 按先序、中序和后序遍历
二叉树
(递归
算法
)。 3. 按某种形式输出整棵
二叉树
。 4. 求
二叉树
的高度。 5. 求
二叉树
的叶
结点
个数。 6. 交换
二叉树
的左右子树。 7. 借助队列实现
二叉树
的层次遍历。 8. 在主函数中设计
一个
简单的菜单,调试上述
算法
,要求1-3必做,4-7为选做。
算法
入门教程——
二叉树
循序渐进的讲解
二叉树
的相关知识。其中包括二叉搜索树的插入、删除与查询、
二叉树
的遍历、求一颗
二叉树
的高度等重要且经典的知识。
数据结构——
二叉树
有关操作程序
一)建立
二叉树
+判空+遍历 (1)以二叉链表作为存储结构,从键盘以先序次序输入各个
结点
(空格字符表示空树)建立一棵
二叉树
; (2)对(1)中生成的
二叉树
进行判空; (3)对(1)中生成的
二叉树
进行遍历(分别实现先序遍历、中序遍历、后序遍历); (4) 打印输出(3)的遍历结果; 二)
二叉树
的一些基本操作 (1)返回
二叉树
的根; (2)返回树中某个
结点
的左孩子,若无则返回“空”; (3)返回树中某个
结点
的双亲,如果是根
结点
,则返回“空”; 三) 在(二)的基础上,求
二叉树
的深度+
结点
数 (1)求出
二叉树
的深度并显示; (2)求出
二叉树
的
结点
总数
并显示; (3)求叶子
结点
总数
并显示。 四)应用题 (1)编制
一个
递归
算法
,求
一个
二叉树
中位于先序序列中第k个位置的
结点
的值。 (2)编制
一个
递归
算法
,将
一个
二叉树
中所有
结点
的左、右子树相互互换。 (3)编写
算法
,将
一个
二叉树
的所有叶子
结点
按单链表串联起来。 (4)编写
算法
,按层序打印
二叉树
的所有
结点
。
求度为2的
结点
个数-
二叉树
设有一棵
二叉树
,其
结点
值为字符型并假设各值互不相等,采用二叉链表存储表示。现输入其扩展
二叉树
的前序遍历序列,要求建立该
二叉树
,并求其度为2的
结点
个数。
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章