散列查找顺序表的实现实验报告.docx
《散列查找顺序表的实现实验报告.docx》由会员分享,可在线阅读,更多相关《散列查找顺序表的实现实验报告.docx(10页珍藏版)》请在冰点文库上搜索。
散列查找顺序表的实现实验报告
题目:
顺序表的实现
一、实验题目
顺序表的实现
二、实验目的
⑴掌握线性表的顺序存储结构;
⑵验证顺序表及其基本操作的实现;
⑶理解算法与程序的关系,能够将顺序表算法转换为对应的程序。
三、实验内容与实现
⑴建立含有若干个元素的顺序表;
⑵对已建立的顺序表实现插入、删除、查找等基本操作。
实验实现
#include
#include
inta[10000];
intarrlong()
{
intj;
for(j=0;j<12;j++)
if(a[j]==0)
break;
returnj;
}
intInsect(intn,ints)////插入
{
intj;
for(j=0;j<10000;j++)
if(a[j]==0)
break;
printf("要操作的元素\n");
for(inti=0;iprintf("%d",a[i]);
printf("\n");
for(inti=j;i>n-1;i--)
a[i+1]=a[i];
a[n]=s;
for(intk=0;kprintf("%d",a[k]);
printf("\n");
}
intSearch(intp)//查找
{
intj,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");
}
intDelate(intg,intq)//删除
{
intj;
g=g-1;
for(intj=g;j<12;j++)
a[j]=a[j+1];
for(q=0;q<12;q++)
{
if(a[q]==0)
break;
}
for(inti=0;iprintf("%d",a[i]);
printf("\n");
}
intmain()
{
inty,c;
printf("菜单\n");
printf("-------------------------------------------------\n");
printf("0建表\n1插入\n2查找\n3删除\n4退出\n");
printf("-------------------------------------------------\n");
while(scanf("%d",&y)!
=EOF)
{
intn,x,s;
if(y==0)
{
memset(a,0,sizeof(a));
printf("请输入元素的个数:
\n");
scanf("%d",&c);
printf("请输入数据:
\n");
for(inti=0;iscanf("%d",&a[i]);
}
elseif(y==1)
{
intL;
printf("请输入插入的第几位\n");
scanf("%d",&n);//输入
L=arrlong();
if(n<=L)
{
printf("请输入插入的数字\n");
scanf("%d",&s);
Insect(n,s);
}
else
{
printf("输入有误\n");
continue;
}
}
elseif(y==2)
{
intp;
printf("请输入要查找的数字\n");
scanf("%d",&p);
Search(p);
}
elseif(y==3)
{
intg,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;
}
}
elseif(y==4)
break;
else
{
printf("输入有误\n");
printf("菜单\n");
printf("-------------------------------------------------\n");
printf("0建表\n1插入\n2查找\n3删除\n4退出\n");
printf("-------------------------------------------------\n");
continue;
}
printf("菜单\n");
printf("-------------------------------------------------\n");
printf("0建表\n1插入\n2查找\n3删除\n4退出\n");
printf("-------------------------------------------------\n");
}
}
建立顺序表:
插入操作:
查找操作:
删除操作:
插入数据超出顺序表范围:
查找不到输入数据:
删除数据超出顺序表范围:
四、实验心得
1.掌握了为数组赋值的方法,深刻理解了数组的含义
2.掌握了为数组排序的方法。
3.正确理解for循环与数组的共同使用方式
4.会灵活的使用函数