📄 main.cpp
字号:
#include <stdio.h>
#include "bstree.h"
#include <stdlib.h>
int main()
{
int n,find=0,insert,del;
bool taller;
BSTree T=NULL,T2=NULL;
ElemType e;
int choose;
while(1)
{
n = 0;
printf("\n--------------------------------------------------------------------\n"
" 1、CreatAVL -------- 构造平衡二叉树\n"
" 2、SearchAVL -------- 查找关键字(不进行插入操作)\n"
" 3、InsertAVL -------- 插入关键字\n"
" 4、DeleteAVL -------- 删除关键字\n"
" 5、PrintAVL -------- 打印二叉树\n"
" 6、MergeAVL -------- 合并两棵二叉树\n"
" 7、Exit -------- 退出"
"\n--------------------------------------------------------------------\n");
printf("\n■请选择要进行的操作:");
fflush(stdin);
scanf("%d",&choose);
switch(choose)
{
case 1:
if(!CreatAVL(T,taller)) return 0;
printf("\n");
n = 0;
PrintAVL(T,n);
break;
case 2:
find = 0;
printf("\n■请输入要查找的关键字: ");
fflush(stdin);
e=getchar();
SearchAVL(T,e,find);
if(find)
printf("\n %c is in the BSTree \n",e);
else
printf("\n %c is not in the BSTree \n",e);
break;
case 3:
insert = 1;
printf("\n■请输入要插入的关键字: ");
fflush(stdin);
e=getchar();
InsertAVL(T,e,taller,insert);
if(insert)
printf("\n 关键字插入成功\n\n");
else
printf("\n 关键字已经存在,插入失败\n");
printf("\n操作结束后的二叉树为:\n\n");
PrintAVL(T,n);
break;
case 4:
del = 1;
printf("\n■请输入要删除的关键字: ");
fflush(stdin);
e=getchar();
DeleteAVL(T,e,taller,del);
if(del)
printf("\n 删除成功\n\n");
else
printf("\n 关键字不存在,删除操作失败\n\n");
PrintAVL(T,n);
break;
case 5:
PrintAVL(T,n);
break;
case 6:
insert = 1;
printf("\n■输入要合并的两棵二叉树\n\n ■构造第一棵二叉树:\n");
if(!CreatAVL(T,taller)) return 0;
printf("\n ■构造第二棵二叉树:\n");
if(!CreatAVL(T2,taller)) return 0;
if(!MergeAVL(T,T2,taller,insert)) return 0;
printf("\n■合并后的二叉树为:\n\n");
n=0;
PrintAVL(T,n);
break;
case 7:
DestroyAVL(T);
printf("\n操作结束并退出\n\n");
exit(0);
default:
break;
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -