#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;
}
统计二叉树中度为1,2的结点个数c++
最新推荐文章于 2023-10-29 17:06:01 发布