统计二叉树中度为1,2的结点个数c++
程序员文章站
2022-05-16 18:34:17
...
#include<iostream>
using namespace std;
//字符类型
#define TElemType char
//二叉树的二叉链表的表示与实现
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//先序创建二叉树
BiTree CreateBiTree()
{
char ch;
BiTree T;
cin>>ch;
if(ch=='#')
T=NULL;
else
{
T=(BiTNode*)malloc(sizeof(BiTNode));
T->data=ch;
T->lchild =CreateBiTree();
T->rchild =CreateBiTree();
}
return T;
}
//统计度为1的结点个数,其值用sum返回
void countOneChild(BiTree T, int *sum)
{
if(T)
{
if(!T->lchild && T->rchild || T->lchild && !T->rchild )
(*sum)++;
countOneChild(T->lchild,sum);
countOneChild(T->rchild,sum);
}
}
//统计度为2的结点个数,其值用sum返回
void countTwoChild(BiTree T, int *sum)
{
if(T)
{
if(T->lchild && T->rchild )
(*sum)++;
countTwoChild(T->lchild,sum);
countTwoChild(T->rchild,sum);
}
}
int main()
{
BiTree T;
int sum1=0,sum2=0;
cout<<"输入二叉树的序列:"<<endl;
T=CreateBiTree();
countOneChild(T,&sum1);
int a=sum1;
countTwoChild(T,&sum2);
int b=sum2;
//度为1的结点个数
cout<<"二叉树中度为一的个数为:"<<endl;
cout<<sum1<<endl;
//度为2的结点个数
cout<<"二叉树中度为二的个数为:"<<endl;
cout<<sum2<<endl;
return 0;
}
推荐阅读
-
求二叉树度为0,1,2的结点个数
-
SWUST-973 976 975-统计利用先序遍历创建的二叉树的度为0,1,2的结点个数
-
统计二叉树中度为0,1,2的节点个数
-
二叉树基本操作补充(求二叉树中度为0/度为1/度为2的结点个数)
-
C语言 二叉树 统计二叉树中度为0,1和2的结点个数【树和二叉树】给定先序序列,按照该序列创建对应的二叉树,并输出该二叉树度为0,1和2的结点个数。输入:一行,二叉树按先序遍历序列,空指针用字符^占位
-
(二叉树)4. 二叉树的各类计算问题(总结点个数、[叶子|度数为1|度数为2]结点个数以及二叉树深度计算)
-
二叉树:度为2的结点个数、叶子结点的个数、结点的个数
-
数据结构 统计二叉树中度为0,1和2的结点个数
-
统计二叉树中度为1,2的结点个数c++
-
6-1 统计二叉树度为2的结点个数 (10分)(c++)