2023年数据结构顺序表的查找实验报告_第1页
2023年数据结构顺序表的查找实验报告_第2页
2023年数据结构顺序表的查找实验报告_第3页
2023年数据结构顺序表的查找实验报告_第4页
2023年数据结构顺序表的查找实验报告_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

合照学浣

HEFEIUNIVERSITY

计算机科学与技术系

实验报告

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

课程名称《数据结构》____________

项目名称顺序表查找_______________

班级____________

学号_________________

姓名____________________

同组人员_______________先____________________

实验日期

一、实验目的与规定:

(简述本次实验规定达成的目的,涉及到的相关知识点,实验的具体规定。)

(一)实验目的:

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

(二)实验规定:

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

(三)实验环境:

VC++6.0.

二、实验内容

#inc1ude<stdio.h>

#include<stdlib.h>

#inc1ude<ma11oc.h>

#defineERROR0

#defineOK1

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

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

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

typedefstructSq1ist{

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

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

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

}Sqlist;

intInitList_sq(Sq1ist*L);

intCreateList_sq(Sq1ist*L,intn);

intListinsert_sq(Sqlist*L,inti,E1emType

e);

intPrintList_sq(Sqlist*L);

intListDe1ete_sq(Sqlist*L,inti);

intListLocate(Sqlist*L,E1emTypee);

//初始化顺序表

intInitList_sq(Sqlist*L){

L—>s1ist=(ElemType*)malloc(INIT_SIZE*sizeof(E

1emType));

if(!L->slist)returnERROR;

L->1ength=0;

L->listsize=INITSIZE;

returnOK;

}/*InitList*/

〃创建顺序表

intCreateList_sq(Sq1ist*L,intn){

ElemTypee;

inti;

for(i=0;i<n;i++){

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

wprintf(":");

scanf("%d",&e);

if(!Listlnsert_sq(L,i+1,e))

returnERROR;

)

returnOK;

}/*CreateList*/

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

intPrintList_sq(Sq1ist*L){

inti;

for(i=l;i<=L—>1ength;i++)

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

printf("\n");

returnOK;

}/*PrintList*/

//在顺序表中插入

intListInsert_sq(Sqlist*L,inti,ElemTypee){

intk;

oif(i<1||i>L->1ength+1)

returnERROR;

®if(L->1ength>=L->1istsize){

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

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

if(!L->slist)

returnERROR;

L->listsize+=INCREM;

}

for(k=L->1ength-1;k>=i-l;k—){

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

}

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

L->1ength++;

returnOK;

}/*Listlnsert*/

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

intListDelete_sq(Sqlist*L,inti)

,intj;

if(L->1ength<0){

sprintf("顺序表为空!\n");

returnERROR;

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

«Printf("i的参数犯错!\n");

«returnERROR;

6}

else

(

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

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

»L->1ength—;

»returnOK;

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

intListLocate(Sqlist*L,E1emTypee)

inti,z=0;

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

®{

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

s(

。printf(〃查找的元素%d在第%d位置\n",e,

i+1);

,z=1;

»//returnOK;

g}

0

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

returnERROR;

}

//主函数

intmain(){

Sqlists1;

intn,i;

ElemTypee;

printf(〃请创建表,输入顺序表的元素个数:;/*输入顺

序表的元素个数*/

scanf("%d",&n);

if(n>0){

d

printf("\n1—CreateSqlist:\n");

InitList_sq(&sl);

CreateList_sq(&sl,n);

printf("\n2—PrintSqlist:\n");

PrintList_sq(&s1);

«system("c1s");

}else

printf("ERROR");

sprintf("------------------------------------请选择操作方式

---------------------------------'n")•

(printfC\t1:查找\t2:删除\t3:输出表\t

0:退出\n输入操作数:〃);

oscanf("%d”,&n);

while(n)

,printf("\n链表元素:\n");

PrintList_sq(&s1);

®if(n==1){

叼rintf("\n请输入想要查找的元素:");

烟canf("%d",&e);

o»ListLocate(&sl,e);

}

oif(n==2){

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

scanf("%d",&i);

oListDelete_sq(&s1,i);

g}

8if(n==3)

4(

»printf("\n链表元素:\n");

4PrintList_sq(&sl);

)

printf("\t-----------------------------------------请选

择操作方式-----------------------------");

»printf(,?\t1:查找\t2:删除\t0:退出\n输入操

作数:〃);

»scanf("%d”,&n);

return0;

}三、实验分析与小结

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

绪)

(一)实验结果截图

一遹施择操作方式一

1:查找2:删除3:输出表0:退出

输入操作数:」

一请选择操作方式一

1-查找2:删除3:输出表0=退出

输入操作数:彳

隆表元素:

64

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论