【数据结构_树_Tree_0981】统计利用二叉树存储的森林中树的棵数
2017-03-20 20:12
411 查看
来点科普先,简单介绍一下怎么计算二叉树储存的森林中树的棵树:
按照森林和二叉树的转换规则可得: 从二叉树根开始一直往右子树走,一共路过几个节点,对应的森林就有几个根,也就是说,对应的森林有几棵树 高度为h的满二叉树最右边一路有h个节点(就是高度为n),因此对应的森林有h棵树.
所以很简单,利用先序遍历创建完树以后,直接利用右结点递归,找到右结点就cnt++;
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
typedef struct node
{
char data;
struct node *L_Kid,*R_Kid;
}Tree;
int cnt=1;
void initTree(Tree *&T)
{
char str;
cin>>str;
if(str!='#')
{
T=(Tree *)malloc(sizeof(Tree));
T->data=str;
initTree(T->L_Kid);
initTree(T->R_Kid);
}
else T=NULL;
}
void num_Tree(Tree *&T)
{
if(T->R_Kid!=NULL)
{
cnt++;
num_Tree(T->R_Kid);
}
}
int main()
{
Tree *T;
initTree(T);
num_Tree(T);
cout<<cnt;
return 0;
}
按照森林和二叉树的转换规则可得: 从二叉树根开始一直往右子树走,一共路过几个节点,对应的森林就有几个根,也就是说,对应的森林有几棵树 高度为h的满二叉树最右边一路有h个节点(就是高度为n),因此对应的森林有h棵树.
所以很简单,利用先序遍历创建完树以后,直接利用右结点递归,找到右结点就cnt++;
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
typedef struct node
{
char data;
struct node *L_Kid,*R_Kid;
}Tree;
int cnt=1;
void initTree(Tree *&T)
{
char str;
cin>>str;
if(str!='#')
{
T=(Tree *)malloc(sizeof(Tree));
T->data=str;
initTree(T->L_Kid);
initTree(T->R_Kid);
}
else T=NULL;
}
void num_Tree(Tree *&T)
{
if(T->R_Kid!=NULL)
{
cnt++;
num_Tree(T->R_Kid);
}
}
int main()
{
Tree *T;
initTree(T);
num_Tree(T);
cout<<cnt;
return 0;
}
相关文章推荐
- 【数据结构_树_Tree_0971】统计利用先序遍历创建的二叉树的深度
- 【数据结构_树_Tree_0975】利用二叉树统计结点度为2的数
- 【数据结构_树_Tree_0972】统计利用先序计算二叉树宽度
- 【数据结构_树_Tree_0983】利用二叉树中序和后序遍历确定二叉树的先序遍历
- 【数据结构_树_Tree_0976】利用二叉树统计度为1的结点
- 【数据结构_树_Tree_0982】利用二叉树储存普通树的度
- 【数据结构_树_Tree_0973】利用二叉树计算叶结点个数
- 【郝斌数据结构自学笔记】60-65_树的定义_树的专业术语解释_树的分类_二叉树连续存【重点】_二叉树的链式存储_普通树的存储
- 6-3-二叉树(三叉链表存储)-树和二叉树-第6章-《数据结构》课本源码-严蔚敏吴伟民版
- 数据结构学习笔记——二叉树的存储结构
- ※数据结构※→☆非线性结构(tree)☆============二叉树 顺序存储结构(tree binary sequence)(十九)
- 数据结构第六章-二叉树顺序存储变链式存储
- 数据结构(六)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 基本数据结构:二叉树(binary tree)
- leetcode 104. Maximum Depth of Binary Tree(C语言数据结构,二叉树的深度,递归)30
- 数据结构-----前序遍历二叉树非递归算法(利用堆栈实现)
- 数据结构--非递归遍历二叉树(利用辅助栈)
- 请问二叉树等数据结构的物理存储结构是怎样的?
- 数据结构 五:二叉树(Binary Tree)
- python数据结构之二叉树的统计与转换实例