📄 5.cpp
字号:
#include<iostream.h>
#include<conio.h>
#include"bst5.h"
#include"BinNodePtr1.h"
#include"stdio.h"
int b[200];
void save()
{
FILE *fp;
int i;
char infile[10];
cout<<"输入文件名:\n";
scanf("%s",infile);
if((fp=fopen(infile,"w+"))==NULL)
{
cout<<"不能打开文件\n";
return;
}
for(i=0;i<200;i++)
if(fwrite(&b[i],4,1,fp)!=1)
cout<<"文件保存错误\n";
}
void load()
{
FILE *fp;
int i;
char outfile[10];
cout<<"输入文件名:\n";
scanf("%s",outfile);
if((fp=fopen(outfile,"r+"))==NULL)
{cout<<"不能打开文件\n";return;
}
for(int i=0;i<200;i++)
if(fread(&b[i],4,1,fp)!=1)
{
if(feof(fp))return;
cout<<"文件打开错误\n";
}
}
main()
{
BinNodePtr1* relroot=NULL;
BST5 playbst;
int e;
int choose;
menu1:
{ clrscr();
gotoxy(18,5);cout<<"1新建二插查找树"<<endl;
gotoxy(18,6);cout<<"2打开文件"<<endl;
gotoxy(18,7);cout<<"3退出"<<endl;
gotoxy(18,8);cout<<"输入你的选择:";
cin>>choose;
if(choose==1)
goto menu2;
else if(choose==2)
goto menu3;
else goto end;
}
menu2:
{ clrscr();
gotoxy(18,4);cout<<"1插入结点"<<endl;
gotoxy(18,5);cout<<"2删除二插查找树"<<endl;
gotoxy(18,6);cout<<"3删除某一结点"<<endl;
gotoxy(18,7);cout<<"4删除最小结点"<<endl;
gotoxy(18,8);cout<<"5查找某一结点"<<endl;
gotoxy(18,9);cout<<"6二插查找树的总结点数"<<endl;
gotoxy(18,10);cout<<"7打印二插查找树"<<endl;
gotoxy(18,11);cout<<"8保存二插查找树"<<endl;
gotoxy(18,12);cout<<"9返回"<<endl;
gotoxy(18,13);int choose1;cin>>choose1;
switch(choose1)
{
case 1:
{
clrscr();
gotoxy(18,4);cout<<"输入结点值,按0退出:";
gotoxy(18,5);cin>>choose1;
while(choose1!=0)
{ cout<<"输入结点值,按0退出:";
playbst.insert(relroot,choose1);
cin>>choose1;
}
goto menu2;
} break;
case 2: clrscr();playbst.clear(relroot);goto menu2;break;
case 3:
{
clrscr();
gotoxy(18,4);cout<<"输入要删除的结点,按0退出:";
gotoxy(18,5);cin>>choose1;
while(choose1!=0)
{
playbst.remove(relroot,choose1,e);
gotoxy(18,4);cout<<"输入要删除的结点,按0退出:";
gotoxy(18,5);cin>>choose1;
}
goto menu2;
}break;
case 4: {playbst.removeAny(relroot,e);goto menu2;}break;
case 5:
{
cout<<"输入要找的结点值:";
cin>>choose1;
if(playbst.find(relroot,choose1,e))
cout<<"找到";
else
cout<<"没找到";
getch();
goto menu2;
}break;
case 6:
{
clrscr();gotoxy(18,4);
cout<<"二插查找树的大小为"<<playbst.size();
getch();
goto menu2;
}break;
case 7: {
clrscr();
playbst.print(relroot,0);
getch();
goto menu2;
}break;
case 8: { clrscr();
playbst.ccbl(relroot);
playbst.shuzhu(b);
save();
playbst.clear(relroot);
goto menu2;
}break;
case 9: playbst.clear(relroot);break;
}
goto menu1;
}
menu3:
{ clrscr();
gotoxy(18,5);
load();
for(int i=0;b[i]!=0&&i<200;i++)
playbst.insert(relroot,b[i]);
clrscr();
playbst.print(relroot,0);
getch();
clrscr();
goto menu2;
}
getch();
clrscr();
end:
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -