文档介绍:数据结构实验
实验一静态查找表中的查找
一、实验目的:
1、理解静态查找表的概念
2、掌握顺序查找和折半查找算法及其实现方法
3、理解顺序查找和折半查找的特点,学会分析算法的性能
二、实验内容:
1、按关键字从小到大顺序输入一组记录构造查找表,并且输出该查找表;
2、给定一个关键字值,对所构造的查找表分别进行顺序查找和折半查找,输出查找的结果以及查找过程中“比较”操作的执行次数。
三、实验要求:
1、查找表的长度、查找表中的记录和待查找的关键字值要从终端输入;
2、具体的输入和输出格式不限;
3、算法要具有较好的健壮性,对错误操作要做适当处理;
4、输出信息中要标明所采用的查找方法类型。
实验二基于二叉排序树的查找
一、实验目的:
1、理解动态查找表和二叉排序树的概念
2、掌握二叉排序树的构造算法及其实现方法
3、掌握二叉排序树的查找算法及其实现方法
二、实验内容:
1、输入一组记录构造一颗二叉排序树,并且输出这棵二叉排序树的中序序列;
2、给定一个关键字值,对所构造的二叉排序树进行查找,并输出查找的结果。
三、实验要求:
1、二叉排序树中的记录和待查找的关键字值要从终端输入;
2、输入的记录格式为(整数,序号),例如(3, 2)表示关键字值为3,输入序号为2的记录;
3、算法要具有较好的健壮性,对错误操作要做适当处理。
四、程序实现:
(1)实现顺序查找表和折半查找表:
#include<>
#define MAX_LENGTH 100
typedef struct
{
int key[MAX_LENGTH];
int length;
}stable;
int seqserch(stable ST,int key,int &count)
{
int i;
for(i=;i>0;i--)
{
count++;
if([i]==key)
return i;
}
return 0;
}
int binserch(stable ST,int key,int &count)
{
int low=1,high=,mid;
while(low<=high)
{
count++;
mid=(low+high)/2;
if([mid]==key)
return mid;
else if(key<[mid])
high=mid-1;
else
low=mid+1;
}
return 0;
}
main()
{
stable ST1;
int a,b,k,x,count1=0,count2=0,temp=0;
=0;
printf("请按从小到大的顺序输入查找表数据:(-1代表结束!)\n");
for(a=0;a<MAX_LENGTH;a++)
{
scanf("%d",&temp);
if(temp!=-1)
{
[a]=temp;
++;
}
else
break;
}
printf("输入数据