⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.cpp

📁 建立二叉树
💻 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 + -