📄 1.cpp
字号:
#include <iostream>
using namespace std;
#define OK 1
#define OVERFLOW -2
typedef int status;
typedef char TElemType;
int count=0; //记录二叉树中的二度结点的个数
int count1=0; //记录叶子结点个数
typedef struct BiTNode
{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
status CreateBitree(BiTree&T) //建立二叉树
{
TElemType ch;
cin>>ch;
if(ch=='@')T=NULL;
else{
if(!(T=new BiTNode)) return OVERFLOW;
T->data=ch;
CreateBitree(T->lchild);
CreateBitree(T->rchild);
}
return OK;
}
void preorder (BiTree T) //先序遍历
{
if(T)
{
cout<<T->data;
preorder(T->lchild);
preorder(T->rchild);
}
}
void tongji(BiTree T) //求二叉树中度为2的结点个数
{
if(T)
{
if(T->lchild&&T->rchild)
{
count++;
cout<<T->data;
}
tongji(T->lchild);
tongji(T->rchild);
}
}
void yezhi(BiTree T) //求二叉树中叶子结点个数
{
if(T)
{
if((!T->lchild)&&(!T->rchild))
{
count1++;
cout<<T->data;
}
yezhi(T->lchild);
yezhi(T->rchild);
}
}
int main()
{
BiTree b;
CreateBitree(b);
cout<<"先序遍历序列为:"<<endl;
preorder(b);
cout<<endl<<endl<<"二叉树中度为2的结点为:";
tongji(b);
cout<<endl<<"结点个数为:"<<'\t'<<count<<endl;
cout<<endl<<"二叉树中叶子结点为:";
yezhi(b);
cout<<endl<<"结点个数为:"<<'\t'<<count1<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -