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

📄 erchashu.txt

📁 二叉树的排序算法 数据结构 实现算法
💻 TXT
字号:
#include<iostream.h>
#include<stdlib.h>
#define max 100
typedef int BinTreeNode[max+1];
class BinTree
{
	BinTreeNode BT;
public:
	void InitBT(BinTreeNode BT);
	void InsertBT(BinTreeNode BT);
    void createBT(BinTreeNode BT);
	void Inorder(BinTreeNode BT,int i);
	void Preorder(BinTreeNode BT,int i);
	void Lastorder(BinTreeNode BT,int i);
	void Levelorder(BinTreeNode BT,int i);
	void menu();
};
void BinTree::Levelorder(BinTreeNode BT,int i)
{
	for(i=1;i<=max;i++)
		if(BT[i])
		cout<<BT[i]<<"   ";
}
void BinTree::Lastorder(BinTreeNode BT,int i)
{
	if(i>max||!BT[i])
		return;
	Lastorder(BT,2*i);
	Lastorder(BT,2*i+1);
	cout<<BT[i]<<"   ";
}
void BinTree::Preorder(BinTreeNode BT,int i)
{
	if(i>max||!BT[i])
		return;
	cout<<BT[i]<<"   ";
	Preorder(BT,2*i);
	Preorder(BT,2*i+1);
}
void BinTree::Inorder(BinTreeNode BT,int i)
{
	if(i>max||!BT[i])
		return;
	Inorder(BT,2*i);
	cout<<BT[i]<<"    ";
	Inorder(BT,2*i+1);
}

void BinTree::createBT(BinTreeNode BT)
{
	int n;
	cout<<"please input the length BinaryTree:"<<endl;
	cin>>n;
	BT[0]=1;
	for(int i=1;i<=n;i++)
		InsertBT(BT);
}

void BinTree::InitBT(BinTreeNode BT)
{
	for(int i=1;i<=max;i++)
		BT[i]=0;
}
void BinTree::InsertBT(BinTreeNode BT)
{
	int k,done=1,e;
	while(done==1)
	{
		cout<<"input the number and data you want to insert  :"<<endl;
		cin>>k>>e;
		if(k<=max&&BT[k/2])
		{
			BT[k]=e;
			done=0;
		}
		else
			cout<<"you put the wrong number .please put it again:"<<endl;
	}
}
void BinTree::menu()
{
	cout<<"  ********************************************************************"<<endl;
	cout<<"  &                欢迎进入二叉树遍历演示系统                        &"<<endl;
    cout<<"  &                                                                  &"<<endl;
	cout<<"  &         1.创建二叉树                   2、前序遍历二叉树         &"<<endl;
	cout<<"  &         3.中序遍历二叉树        4.后序遍历二叉树     &"<<endl;
	cout<<"  &         5.层序遍历二叉树        6.退出          &"<<endl;
	cout<<"  &                                                                  &"<<endl;
	cout<<"  &  1-6键选择操作:                       &"<<endl;
	cout<<"  &                                                                  &"<<endl;
	cout<<"  ********************************************************************"<<endl;
}
 

void main()
{
	int i=1;
	BinTreeNode bt;
	BinTree binarytree;
	binarytree.menu();
	binarytree.InitBT(bt);
	int n;
	cin>>n;
	while(n!=6)
	{
		switch(n)
		{
		case 1:
			{
			binarytree.createBT(bt);
			cout<<"您输入的顺序为:";
			binarytree.Levelorder(bt,i);
			}break;
		case 2:
			{
			cout<<"您输入的顺序为:";
			binarytree.Levelorder(bt,i);
			cout<<"前序遍历顺序为:";
			binarytree.Preorder(bt,i);
			}break;
		case 3:
			{
			cout<<"您输入的顺序为:";
			binarytree.Levelorder(bt,i);
			cout<<"中序遍历顺序为:";
			binarytree.Inorder(bt,i);
			}break;
		case 4:
			{
			cout<<"您输入的顺序为:";
			binarytree.Levelorder(bt,i);
			cout<<"后序遍历顺序为:";
			binarytree.Lastorder(bt,i);
			}break;
		case 5:
			{
			cout<<"您输入的顺序为:";
			binarytree.Levelorder(bt,i);
			cout<<"层次遍历顺序为:";
			binarytree.Levelorder(bt,i);
			}break;
		default:cout<<"输入错误!请重新输入:"<<endl;
			break;
		}
		cout<<endl;
		binarytree.menu();
		cin>>n;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -