#include "tree.h"
#include<iostream>
using namespace std;
#define maxsize 100
void main(){
cout << " ";
cout << " 创建一棵二叉树,并初始化:" << endl;
tree a;
node* t = a.getgen();
while (1){
there:
cout << "1,添加结点;2,先跟遍历;3,中跟遍历;4,后跟遍历;5查找父节点;6,查找数据域结点;7.返回树的高度;8.层次遍历;9,判断完全二叉树;0;退出;" << endl;
int choose;
cout << "请选择:";
cin >> choose;
switch (choose){
case 1: a.addnode(t); break;
case 2: cout << endl << "进行先根遍历"; a.xgtree(t); break;
case 3: cout << endl << "进行中根遍历"; a.zgtree(t); break;
case 4: cout << endl << "进行后根遍历"; a.hgtree(t); break;
case 5:char mm;
cout << "请输入要查找父节点的数据域:";
cin >> mm;
if (!a.findnode(t, mm)){
cout << endl << "该数据域不存在" << endl;
}
else
{
if (t->data == mm){
cout << endl << "不存在父节点" << endl;
}
else{
node*f = a.findfa(t, mm);
if (f != NULL)
{
cout << endl << "父节点数据域" << t->data << endl;
}
else
cout << "未查找到父节点;";
}
}break;
case 6:char cha;
cout << "输入数据域:";
cin >> cha;
node*mmmm;
mmmm = a.findnode(t, cha);
if (mmmm != NULL)cout << "*查到该结点*(*^__^*) 嘻嘻……" << endl;
else cout << endl << "没有查到" << endl;
break;
case 7: cout << endl << "树的高度是:" << a.treedepth(t); break;
case 8: cout << endl << "进行层次遍历:" << endl; a.leveltree(t); break;
case 9: a.wanquantree(t); break;
case 0:return;
default:
goto there;
}
}
}
评论0
最新资源