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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机科学与技术系

实验报告

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

课程名称《数据结构》

项目名称顺序表查找

班级

学号

姓名

同组人员无

实验日期

一、实验目的与要求:

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

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

(二)实验要求:

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

(三)实验环境:

VC++6.0.

二、实验内容

#include

#include

#include

#define ERROR 0

#define OK 1

#define INIT_SIZE 5 /*初始分配的顺序表长度*/

#define INCREM 5 /*溢出时,顺序表长度的增量*/ typedef int ElemType; /*定义表元素的类型*/

typedef struct Sqlist{

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

int length; /*顺序表的当前长度*/

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

}Sqlist;

int InitList_sq(Sqlist *L);

int CreateList_sq(Sqlist *L,int n);

int ListInsert_sq(Sqlist *L,int i,ElemType e);

int PrintList_sq(Sqlist *L);

int ListDelete_sq(Sqlist *L,int i);

int ListLocate(Sqlist *L,ElemType e);

//初始化顺序表

int InitList_sq(Sqlist *L){

L->slist=(ElemType*)malloc(INIT_SIZE*sizeof(ElemType)); if(!L->slist) return ERROR;

L->length=0;

L->listsize=INIT_SIZE;

return OK;

}/*InitList*/

//创建顺序表

int CreateList_sq(Sqlist *L,int n){

ElemType e;

int i;

for(i=0;i

printf("input data %d",i+1);

printf(": ");

scanf("%d",&e);

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

return ERROR;

}

return OK;

}/*CreateList*/

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

int PrintList_sq(Sqlist *L){

int i;

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

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

printf("\n");

return OK;

}/*PrintList*/

//在顺序表中插入

int ListInsert_sq(Sqlist *L,int i,ElemType e){ int k;

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

return ERROR;

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

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

(INIT_SIZE+INCREM)*sizeof(ElemType)); if(!L->slist)

return ERROR;

L->listsize+=INCREM;

}

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

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

}

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

L->length++;

return OK;

}/*ListInsert*/

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

int ListDelete_sq(Sqlist *L,int i)

{

int j;

if(L->length<0){

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

return ERROR;

}

else if(i < 0 || (i > L->length))

{

printf("i 的参数出错! \n");

return ERROR;

}

else

{

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

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

L->length--;

return OK;

}

}

/*在顺序表中查找指定值元素,返回其序号*/ int ListLocate(Sqlist *L,ElemType e) {

int i, z = 0;

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

{

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

{

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

z = 1;

//return OK;

}

}

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

return ERROR;

}

//主函数

int main(){

Sqlist sl;

int n, i;

ElemType e;

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

scanf("%d",&n);

相关文档
最新文档