散列查找顺序表的实现实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:顺序表的实现
一、实验题目
顺序表的实现
二、实验目的
⑴掌握线性表的顺序存储结构;
⑵验证顺序表及其基本操作的实现;
⑶理解算法与程序的关系,能够将顺序表算法转换为对应的程序。
三、实验内容与实现
⑴建立含有若干个元素的顺序表;
⑵对已建立的顺序表实现插入、删除、查找等基本操作。实验实现
#include
#include
int a[10000];
int arrlong()
{
int j;
for(j=0;j<12;j++)
if(a[j]==0)
break;
return j;
}
int Insect(int n,int s) ////插入
{
int j;
for(j=0;j<10000;j++)
if(a[j]==0)
break;
printf("要操作的元素\n");
for(int i=0;i printf("%d ",a[i]); printf("\n"); for(int i=j;i>n-1;i--) a[i+1]=a[i]; a[n]=s; for(int k=0;k printf("%d ",a[k]); printf("\n"); } int Search(int p) //查找 { int j,h; for(j=0;j<12;j++) { if(a[j]==0) break; } for(h=0;h { if(a[h]==p) { printf("查找到的数在第%d位\n",h+1); break; } } if(h==j) printf("查无此数\n"); } int Delate(int g,int q) //删除{ int j; g=g-1; for(int j=g;j<12;j++) a[j]=a[j+1]; for(q =0;q<12;q++) { if(a[q]==0) break; } for(int i=0;i printf("%d ",a[i]); printf("\n"); } int main() { int y,c; printf(" 菜单\n"); printf("-------------------------------------------------\n"); printf("0 建表\n1 插入\n2 查找\n3 删除\n4 退出\n"); printf("-------------------------------------------------\n"); while(scanf("%d",&y)!=EOF) { int n,x,s; if(y==0) { memset(a,0,sizeof(a)); printf("请输入元素的个数:\n"); scanf("%d",&c); printf("请输入数据:\n"); for(int i = 0;i < c;i++) scanf("%d",&a[i]); } else if(y==1) { int L; printf("请输入插入的第几位\n"); scanf("%d",&n);//输入 L=arrlong(); if(n<=L) { printf("请输入插入的数字\n"); scanf("%d",&s); Insect(n,s); } else { printf("输入有误\n"); continue; } } else if(y==2) { int p; printf("请输入要查找的数字\n"); scanf("%d",&p); Search(p); } else if(y==3) { int g,q,L; printf("请输入要删除数的位置\n"); scanf("%d",&g); L=arrlong(); if(L>=g) { Delate(g,q); } else { printf("输入有误\n"); printf(" 菜单\n"); printf("-------------------------------------------------\n"); printf("0 建表\n1 插入\n2 查找\n3 删除\n4 退出\n"); printf("-------------------------------------------------\n"); continue; } }