栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

静态查找表的操作

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

静态查找表的操作

一、操作要求

1.根据输入的查找表的表长n和n个关键字值,建立顺序查找表;

2.用顺序查找方法在上述顺序查找表中查找与已经给定关键值相等的记录;

3.选择一种排序方法对1中建立的顺序查找表进行排序;

4.在3中的有序查找表中用二分查找方法查找与已经给定关键值相等的记录 ;

5.编写main函数,设计菜单使用户能通过菜单的选择多次通过调用上述功能函数来实现所选择的查找操作,并且在每次操作后都输出其操作结果:若查找成功,则输出“查找成功”并输出这条记录在表中的位置,否则输出“查找失败”。

二、代码实现

#include
#include
#define OK 1
#define ERROR 0
typedef int Status;
typedef int keyType;

typedef struct{
	keyType key;	
}Elemtype; 

typedef struct{
	Elemtype *elem;
	int length;
	int listsize; 
}SSTable;
//动态不像静态可以直接分配空间 
Status creatsstable(SSTable &L,int n){
	L.elem=(Elemtype *)malloc(100*sizeof(Elemtype));
	if(!L.elem)
		return ERROR;
	L.length=n;
	L.listsize=100;
	printf("请输入表中的值:n");
	for(int i=1;i<=n;i++){
		scanf("%d",&L.elem[i].key);
	}
	return OK;
}//创建一个查找表

Status copy(SSTable L,SSTable &L1){
//L1分配空间,L的关键字复制到L1的关键字中
	L1.elem=(Elemtype *)malloc(100*sizeof(Elemtype));
	L1.length=L.length;
	L.listsize=100;	
	for(int i=1;i<=L1.length;i++){
		L1.elem[i].key=L.elem[i].key;
	}
}//复制
 
int search(SSTable L,keyType key){
	int i;
	L.elem[0].key=key;
	for(i=L.length;L.elem[i].key!=key;i--);
	return i;
}//顺序查找

void Insert(SSTable &L){
	int i,j;
	for(i=2;i<=L.length;i++)
		if(L.elem[i].key 

三、运行结果

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/655490.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号