#include "stdafx.h"
#include<iostream>
using namespace std;
int num_visit=0;//记录输出元素个数
struct tnode{
public: int data;
public: tnode *left,*right;
tnode(){}
tnode(int item,tnode *p,tnode *q):data(item),left(p),right(q){}
};
typedef tnode *Tnode;
//生明函数
int menu();//菜单
void main_menu(Tnode root,int n);//主菜单
Tnode createTree();//创建二叉树
int visit(int t);//访问节点
void showTree(Tnode , int );//遍历
int level_showTree(Tnode root);//先序便遍历二叉树
int inorder_showTree(Tnode root);//中序遍历二叉树
int postorder_showTree(Tnode root);//后序遍历二叉树
bool search(Tnode root,int search_num);//查找二叉树
Tnode insert(Tnode root,int insert_num);//插入
void d_delete(Tnode,int);//删除
void free(Tnode root);//free
//主函数
void main()
{
Tnode root = createTree();
//菜单
int n = menu();
//退出
if(n ==0 ){
return;
}
//遍历
if(n<=3)
{
showTree(root,n);
main_menu(root,n);
}
//查找
if(n == 4){
cout<<"请输入要查找的结点的元素值:";
cin>>n;
search(root,n);
main_menu(root,n);
}
//插入
if(n == 5){
cout<<"请输入要插入的节点的元素值:";
cin>>n;
insert(root,n);
main_menu(root,n);
}
//删除
if(n == 6){
cout<<"请输入要删除的结点元素值:";
cin>>n;
d_delete(root,n);