数据结构:查找子系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/*
*题目:编写循序查找程序
* 编写二分查找程序
* 编写建立二叉排序树的程序
* 编写在二叉排序树上的查找、输入、删除结点的程序* 编写二叉排序树的中序输出的程序
* 设计一个选择式菜单,一级菜单形式如下:
* 查找子系统
* *********************************
* * 1------顺序查找*
* * 2------二分查找*
* * 3------二叉排序树*
* * 0------返回*
* *********************************
* 请选择菜单号(0--3):
* 二叉排序树的二级菜单如下:
* 二叉排序树
* ************************************
* * 1------更新二叉排序树*
* * 2------查找结点*
* * 3------插入结点*
* * 4------删除结点*
* * 5------中序输出排序树*
* * 0------返回*
* ************************************
* 请选择菜单号(0--5):
*/
#include
#include
#include
#define SEARCHMAX 30
typedef struct node
{
int trData; //根节点
struct node *lchild; //左子树
struct node *rchild; //右子树
}BtNode, *pBtNode;
void seqSearch();
void binSearch();
void btSearch();
pBtNode createBT();
void searchBT(pBtNode T, int k);
void insBT(pBtNode *T, int k);
void delBT(pBtNode *T, int k);
void inorderBT(pBtNode T);
void main()
{
int choice, k = 1;
while (k)
{
printf("\n 查找子系统\n");
printf("*********************************\n");
printf("* 1------顺序查找*\n");
printf("* 2------二分查找*\n");
printf("* 3------二叉排序树*\n");
printf("* 0------返回*\n");
printf("*********************************\n");
printf("请选择菜单号(0--3):");
fflush(stdin);
scanf("%d", &choice);
switch(choice)
{
case 1:
seqSearch();
break;
case 2:
binSearch();
break;
case 3:
btSearch();
break;
case 0:
k = 0;
break;
default:
printf("输入错误,请重新输入。");
getchar();
k = 1;
break;
}
}
}
void seqSearch() //顺序查找
{
int a[SEARCHMAX], x, y, i;
char ch;
printf("建立一个整数的顺序表(以-1结束):");
for (i = 0; i { scanf("%d", &a[i]); getchar(); if (a[i] == -1) //记录结束位置,结束循环 { y = i; break; } } printf("是否需要查找(Y/N):"); scanf("%c", &ch); while (ch == 'y'||ch == 'Y') { printf("请输入要查找的数据:\n"); scanf("%d", &x); getchar(); i = 0; //找到数组的结束位置。 while (i < y-1&&a[i] != x) //找到要查找的数据的位置 { i++; } if (i == -1) //没找到 { printf("对不起,没有找到。\n"); } else { printf("该数据在第%d个位置上。\n", i+1); } printf("是否继续查找(Y/N):"); scanf("%c", &ch); } }