📄 统计二叉树的叶子数和度为2的节点数.cpp
字号:
// 统计二叉树的叶子数和度为2的节点数.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
struct BiTNode
{
BiTNode *lchild;
BiTNode *rchild;
char data;
};
int CreateBiTree(BiTNode * &T)
{ //按先序次序输入二叉树中的结点的值(一个字符),空格字符表示空树。
char ch;
ch=cin.get();
if(ch==' ') T=NULL;
else
{
T=new BiTNode;
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return 1;
}
int BiTTowleaf(BiTNode *T,int & a)
{ //返回树中度为二的结点数,以引用的方式,数目保存在引用变量a中
if(T)
{
if(T->lchild!=NULL && T->rchild!=NULL)
a++;
if(BiTTowleaf(T->lchild,a))
if(BiTTowleaf(T->rchild,a))
return 1;
return 0;
}
else
return 1;
}
int BiTLeafCount(BiTNode* T,int &n)
{ //返回树的叶子结点数
if(T)
{
if(BiTLeafCount(T->lchild,n))
if(BiTLeafCount(T->rchild,n))
{
n++;
return 1;
}
return 0;
}
else
return 1;
}
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"请按先序顺序依次输入树的各个结点:"<<endl;
BiTNode * T;
CreateBiTree(T);
int a,b;
BiTTowleaf(T,a);
BiTLeafCount(T,b);
cout<<endl<<"度的二的结点个数为: "<<a;
cout<<endl<<"叶子结点个数为: "<<b;
cin>>a;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -