数据结构-顺序表的查找实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;