#include"BinaryTree.h"
#include"Stack.h"
#include<iostream>
using namespace std;
void main()
{
char m[20];
int finished=0,choice;
BinaryTree<char> a;
while ( !finished )
{
cout<<endl;
cout<<endl;
cout<<"************Menu************\n";
cout<<" 1---建立二叉树\n";
cout<<" 2---前序遍历(递归)\n";
cout<<" 3---前序遍历(非递归)\n";
cout<<" 4---中序遍历(递归)\n";
cout<<" 5---中序遍历(非递归)\n";
cout<<" 6---后序遍历(递归)\n";
cout<<" 7---后序遍历(非递归)\n";
cout<<" 8---求树高\n";
cout<<" 9---求叶子总数\n";
cout<<"10---输出二叉树\n";
cout<<"11---交换左右子树\n";
cout<<" 0---退出\n";
cout<<endl;
cout<<"Please choose a choice(1~12):";
cin>>choice;
switch(choice)
{
case 1:
cout<<"按前序遍历的顺序输入结点值:";
a.CreateBinaryTree();
cout<<"输入成功!\n";
break;
case 2:
cout<<"前序遍历(递归):";
a.preOrder();
break;
case 3:
cout<<"前序遍历(非递归):";
a._preOrder();
break;
case 4:
cout<<"中序遍历(递归):";
a.inOrder();
break;
case 5:
cout<<"中序遍历(非递归):";
a._inOrder();
break;
case 6:
cout<<"后序遍历(递归):";
a.postOrder();
break;
case 7:
cout<<"后序遍历(非递归):";
a._postOrder();
break;
case 8:
cout<<"树高为:"<<a.Height();
break;
case 9:
a.setnum();
cout<<"叶子总数为:"<<a.LeafNum();
break;
case 10:
cout<<"该二叉树为:";
a.print();
break;
case 11:
cout<<"该二叉树交换左右子树后,为:";
a.exchange();
a.print();
break;
case 0:
finished=1;
break;
}
}
}