没有合适的资源?快使用搜索试试~ 我知道了~
C/C++实现树操作的实例代码
2 下载量 72 浏览量
2020-12-20
21:08:49
上传
评论
收藏 46KB PDF 举报
温馨提示
试读
3页
预处理命令 #include <stdio> #include <stdlib> #define TRUE 1 #define FALSE 0 typedef int elemtype; typedef struct tNode* tree; typedef struct tNode { elemtype elem; tree left; tree right; }tNode; 计算树的节点个数 //明确函数的功能:返回传入树的节点个数 //定好尾头:尾:当传入的节点尾NULL时 头:1 + count(t->left) + count(t->right) int count
资源详情
资源评论
资源推荐
C/C++实现树操作的实例代码实现树操作的实例代码
预处理命令
#include <stdio.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
typedef int elemtype;
typedef struct tNode* tree;
typedef struct tNode {
elemtype elem;
tree left;
tree right;
}tNode;
计算树的节点个数计算树的节点个数
//明确函数的功能:返回传入树的节点个数
//定好尾头:尾:当传入的节点尾NULL时 头:1 + count(t->left) + count(t->right)
int count(tree t)
{
if (t == NULL) return 0;
return 1 + count(t->left) + count(t->right);
}
求树中节点数据为num的节点个数
//明确函数功能:返回节点数据为num的节点个数
//定好尾头:尾:NULL 头:1 + func(左) + func(右) // 或者 func(左) + func(右)
int count_num(tree t, elemtype num)
{
if (t == NULL) return 0;
else
{
if (t->elem == num)
return 1 + count_num(t->left, num) + count_num(t->right, num);
else
return count_num(t->left, num) + count_num(t->right, num);
}
}
求树中节点数据的总和求树中节点数据的总和
//明确函数功能:返回总和
//定好尾头:尾:NULL 头:root-> elem + func(左) + func(右)
int add(tree t)
{
if (t == NULL)
return 0;
else
return t->elem + add(t->left) + add(t->right);
}
判断树中有无数据为判断树中有无数据为num的节点的节点
//两种方式:一种是可以达成目的就结束,一种是需要遍历完全才结束
//明确函数功能:判断其中有没有值为num的节点返回1或0
//定好尾头:尾:值为num ,头:
int inTree_1(tree t, elemtype num)
{
if (t->elem == num)
return TRUE;
else
{
if (t->left != NULL)
intree(t->left, num); // 使用递归将其递到子节点
if (t->right != NULL)
intree(t->right, num);
}
return FALSE;
}
//确定函数功能:根据num的有无,返回0/非0
//定好尾头:尾:NULL 头:有:return 1 + func(左)+func(右) 无:func(左)+func(右)
weixin_38616505
- 粉丝: 9
- 资源: 1000
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0