数据结构顺序表的查找实验报告.docx

上传人:b****6 文档编号:8707032 上传时间:2023-02-01 格式:DOCX 页数:7 大小:60.29KB
下载 相关 举报
数据结构顺序表的查找实验报告.docx_第1页
第1页 / 共7页
数据结构顺序表的查找实验报告.docx_第2页
第2页 / 共7页
数据结构顺序表的查找实验报告.docx_第3页
第3页 / 共7页
数据结构顺序表的查找实验报告.docx_第4页
第4页 / 共7页
数据结构顺序表的查找实验报告.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

数据结构顺序表的查找实验报告.docx

《数据结构顺序表的查找实验报告.docx》由会员分享,可在线阅读,更多相关《数据结构顺序表的查找实验报告.docx(7页珍藏版)》请在冰豆网上搜索。

数据结构顺序表的查找实验报告.docx

数据结构顺序表的查找实验报告

 

计算机科学与技术系

实验报告

 

专业名称计算机科学与技术

课程名称《数据结构》

项目名称顺序表查找

班级

学号

姓名

同组人员无

实验日期

 

一、实验目的与要求:

(简述本次实验要求达到的目的,涉及到的相关知识点,实验的具体要求。

(一)实验目的:

应用顺序表来实现对数据的查找

(二)实验要求:

用顺序表实现对数据进行查找

(三)实验环境:

VC++6.0.

二、实验内容

#include

#include

#include

#defineERROR0

#defineOK1

#defineINIT_SIZE5/*初始分配的顺序表长度*/

#defineINCREM5/*溢出时,顺序表长度的增量*/

typedefintElemType;/*定义表元素的类型*/

typedefstructSqlist{

ElemType*slist;/*存储空间的基地址*/

intlength;/*顺序表的当前长度*/

intlistsize;/*当前分配的存储空间*/

}Sqlist;

intInitList_sq(Sqlist*L);

intCreateList_sq(Sqlist*L,intn);

intListInsert_sq(Sqlist*L,inti,ElemTypee);

intPrintList_sq(Sqlist*L);

intListDelete_sq(Sqlist*L,inti);

intListLocate(Sqlist*L,ElemTypee);

//初始化顺序表

intInitList_sq(Sqlist*L){

L->slist=(ElemType*)malloc(INIT_SIZE*sizeof(ElemType));

if(!

L->slist)returnERROR;

L->length=0;

L->listsize=INIT_SIZE;

returnOK;

}/*InitList*/

//创建顺序表

intCreateList_sq(Sqlist*L,intn){

ElemTypee;

inti;

for(i=0;i

printf("inputdata%d",i+1);

printf(":

");

scanf("%d",&e);

if(!

ListInsert_sq(L,i+1,e))

returnERROR;

}

returnOK;

}/*CreateList*/

/*输出顺序表中的元素*/

intPrintList_sq(Sqlist*L){

inti;

for(i=1;i<=L->length;i++)

printf("%-5d",L->slist[i-1]);

printf("\n");

returnOK;

}/*PrintList*/

//在顺序表中插入

intListInsert_sq(Sqlist*L,inti,ElemTypee){

intk;

if(i<1||i>L->length+1)

returnERROR;

if(L->length>=L->listsize){

L->slist=(ElemType*)realloc(L->slist,

(INIT_SIZE+INCREM)*sizeof(ElemType));

if(!

L->slist)

returnERROR;

L->listsize+=INCREM;

}

for(k=L->length-1;k>=i-1;k--){

L->slist[k+1]=k;

}

L->slist[i-1]=e;

L->length++;

returnOK;

}/*ListInsert*/

/*在顺序表中删除第i个元素*/

intListDelete_sq(Sqlist*L,inti)

{

intj;

if(L->length<0){

printf("顺序表为空!

\n");

returnERROR;

}

elseif(i<0||(i>L->length))

{

printf("i的参数出错!

\n");

returnERROR;

}

else

{

for(j=i;j<=L->length;j++)

L->slist[j-1]=L->slist[j];

L->length--;

returnOK;

}

 

}

/*在顺序表中查找指定值元素,返回其序号*/

intListLocate(Sqlist*L,ElemTypee)

{

inti,z=0;

for(i=0;ilength;i++)

{

if(L->slist[i]==e)

{

printf("查找的元素%d在第%d位置\n",e,i+1);

z=1;

//returnOK;

}

}

printf("没有查找到相应的数\n");

returnERROR;

}

//主函数

intmain(){

Sqlistsl;

intn,i;

ElemTypee;

printf("请创建表,输入顺序表的元素个数:

");/*输入顺序表的元素个数*/

scanf("%d",&n);

if(n>0){

printf("\n1-CreateSqlist:

\n");

InitList_sq(&sl);

CreateList_sq(&sl,n);

printf("\n2-PrintSqlist:

\n");

PrintList_sq(&sl);

system("cls");

}else

printf("ERROR");

printf("---------------------------请选择操作方式--------------------------\n");

printf("\t1:

查找\t2:

删除\t3:

输出表\t0:

退出\n输入操作数:

");

scanf("%d",&n);

while(n)

{

printf("\n链表元素:

\n");

PrintList_sq(&sl);

if(n==1){

printf("\n请输入想要查找的元素:

");

scanf("%d",&e);

ListLocate(&sl,e);

}

if(n==2){

printf("\n请输入想要删除元素的位置:

");

scanf("%d",&i);

ListDelete_sq(&sl,i);

}

if(n==3)

{

printf("\n链表元素:

\n");

PrintList_sq(&sl);

}

printf("\t---------------------------请选择操作方式--------------------------");

printf("\t1:

查找\t2:

删除\t0:

退出\n输入操作数:

");

scanf("%d",&n);

}

return0;

}三、实验分析与小结

(实验过程中的问题分析、产生的原因以及解决方法;实验结果分析;有待优化思路)

(1)实验结果截图

(2)总结

通过顺序表数组元素的特点,我们可以对数据实现顺序查找。

四、其它

 

得分(百分制)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1