树-----求叶子结点数目,结点数目,树的高度
来源:互联网 发布:linux 服务器病毒查杀 编辑:程序博客网 时间:2024/04/26 12:43
/*求树的高度和结点数*/
#include<iostream>
#include<algorithm>
using namespace std;
int k = 0;
int m = 0;
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {}
};
void num(TreeNode*t)//计算结点数目
{//递归去数,数完左边,数右边
if (t){
k++;
num(t->left);
num(t->right);
}
//传入的地址是根,操作的是子结点,返回的是与根节点相对应的右结点
}
int high(TreeNode*t)
{
if (t == NULL) return (0);
else
{
int hl = high(t->left);//左边多大
int hr = high(t->right);//右边多大
int h = max(hl,hr)+1; //加上根结点
return h;
}
}
void leaf(TreeNode*t1)
{
if (t1){
if (t1->left == NULL&&t1->right == NULL)
m++;
leaf(t1->left);
leaf(t1->right);
}
}//按照先序遍历,然后判断每个结点的左右结点
void main()
{
TreeNode t1(1);
TreeNode t2(2);
TreeNode t3(3);
TreeNode t4(4);
TreeNode t5(5);
TreeNode t6(6);
t1.left = &t2;
t1.right = &t3;
t2.left = &t4;
t2.right = &t5;
t3.left = &t6;
num(&t1);
cout << k << endl;
cout << high(&t1)<<endl;
leaf(&t1);
cout << m;
system("pause");
}
#include<iostream>
#include<algorithm>
using namespace std;
int k = 0;
int m = 0;
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {}
};
void num(TreeNode*t)//计算结点数目
{//递归去数,数完左边,数右边
if (t){
k++;
num(t->left);
num(t->right);
}
//传入的地址是根,操作的是子结点,返回的是与根节点相对应的右结点
}
int high(TreeNode*t)
{
if (t == NULL) return (0);
else
{
int hl = high(t->left);//左边多大
int hr = high(t->right);//右边多大
int h = max(hl,hr)+1; //加上根结点
return h;
}
}
void leaf(TreeNode*t1)
{
if (t1){
if (t1->left == NULL&&t1->right == NULL)
m++;
leaf(t1->left);
leaf(t1->right);
}
}//按照先序遍历,然后判断每个结点的左右结点
void main()
{
TreeNode t1(1);
TreeNode t2(2);
TreeNode t3(3);
TreeNode t4(4);
TreeNode t5(5);
TreeNode t6(6);
t1.left = &t2;
t1.right = &t3;
t2.left = &t4;
t2.right = &t5;
t3.left = &t6;
num(&t1);
cout << k << endl;
cout << high(&t1)<<endl;
leaf(&t1);
cout << m;
system("pause");
}
0 0
- 树-----求叶子结点数目,结点数目,树的高度
- 二叉树的先序中序后序以及递归算法求高度和结点数目
- 二叉树-求结点m所在子树中包括的结点的数目
- 求二叉树的叶子节点数目
- 求二叉树的叶子节点数目/二叉树的高度
- 求树的叶子结点的个数
- 求二叉树的叶子结点数
- 求二叉树的高度,叶子节点个数,第K层结点个数,求祖先结点问题
- 计算二叉树中叶子结点的数目
- 二叉树中递归算法的两个应用——数(非)叶子结点的数目和判断是否是排序二叉树
- 二叉树 (求叶子结点&深度)
- 二叉树(求深度、叶子结点)
- 求满二叉树(哈夫曼树)叶子节点和非叶子节点的数目
- 求二叉树的深度、宽度和叶子结点数
- 求二叉树的叶子结点个数及深度
- 7-1 求二叉树的叶子结点个数
- !求二叉树中从根结点到叶子结点的路径
- 求树的子树数目
- unity连击的实现
- MySQL中的锁(表锁、行锁,共享锁,排它锁,间隙锁)
- ubuntu+kdevelop测试opengl
- 960网格系统
- 看淡一切
- 树-----求叶子结点数目,结点数目,树的高度
- 无法安装 Java 配置文件 C:\ProgramData\Oracle\Java\java.settings.cfg 在行 1 中格式
- 卸载 Go
- springmvc常用注解标签详解
- linux系统时间和硬件时间
- ASP.Net学习笔记009--ASP.Net上次课程内容补充
- ASP.Net学习笔记010--加法计算器
- LeetCode 13. Roman to Integer 罗马数字转整数
- bzoj 4698 Sandy的卡片 后缀数组