顺序表的应用数据结构实验报告记录

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

顺序表的应用数据结构实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

大学数据结构实验报告

课程名称数据结构实验第(三)次实验实验名称顺序表的应用

学生姓名于歌专业班级学号

实验成绩指导老师(签名)日期2018年9月30日一、实验目的

1.学会定义线性表的顺序存储类型,实现C程序的基本结构,对线性表的一些基本操作和具体的函数定义。

2.掌握顺序表的基本操作,实现顺序表的插入、删除、查找以及求并集等运算。

3.掌握对多函数程序的输入、编辑、调试和运行过程。

二、实验要求

1.预习C语言中结构体的定义与基本操作方法。

2.对顺序表的每个基本操作用单独的函数实现。

3.编写完整程序完成下面的实验内容并上机运行。

4.整理并上交实验报告。

三、实验内容:

1.定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能:

(1)根据指定学生个数,逐个输入学生信息

(2)逐个显示学生表中所有学生的相关信息

(3)根据姓名进行查找,返回此学生的学号和成绩

(4)根据指定的位置可返回相应的学生信息(学号,姓名,成绩)

(5)给定一个学生信息,插入到表中指定的位置

(6)删除指定位置的学生记录

(7)统计表中学生个数

四、实验设计

1.定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能:

(1)根据指定学生个数,逐个输入学生信息

for(count=0; count

{

scanf("%s%s%d",e.no,,&e.score);

Input(&L,e);

}

Status Input(SqList *L,ElemType e)

{

if(!(*L).elem)

return ERROR;

(*L).elem[(*L).length++]=e;

return OK;

}

(2)逐个显示学生表中所有学生的相关信息

Status Print(SqList L)

{

printf(" 学号姓名成绩 \n");

int count;

for(count=0; count

Pri(L.elem[count]);

return OK;

}

void Pri(ElemType e)

{

printf("%8s |",e.no);

printf("%20s |",);

printf("%8d \n",e.score);

}

(3)根据姓名进行查找,返回此学生的学号和成绩

Status LocateElem(SqList L,ElemType e)

{

int count;

for(count=0; count

if(strcmp(L.elem[count].name,)==0)

break;

if(count

{

printf(" 学号姓名成绩 \n"); Pri(L.elem[count]);

}

else

printf("%s在顺序表中查不到!\n",);

return OK;

}

(4)根据指定的位置可返回相应的学生信息(学号,姓名,成绩)

Status LocateNum(SqList L,int i)

{

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

return OVERFLOW;

printf(" 学号姓名成绩 \n");

Pri(L.elem[i-1]);

return OK;

}

(5)给定一个学生信息,插入到表中指定的位置

Status ListInsert(SqList *L,int i,ElemType e)

{

int count;

if(i<1||i>(*L).length+1)

return OVERFLOW;

if((*L).length==(*L).MaxSize)

(*L).elem=(ElemType

*)realloc((*L).elem,sizeof(ElemType)*((*L).MaxSize+LISTINCREMENT)); if(!(*L).elem)

exit(OVERFLOW);

for(count=(*L).length-1; count>=i-1; count--)

(*L).elem[count+1]=(*L).elem[count];

(*L).elem[i-1]=e;

(*L).length++;

return OK;

}

(6)删除指定位置的学生记录

Status ListDelete(SqList *L,int i)

{

int count;

if(i<1||i>(*L).length+1)

return OVERFLOW;

for(count=i; count<(*L).length; count++)

(*L).elem[count-1]=(*L).elem[count];

(*L).length--;

return OK;

}

(7)统计表中学生个数

printf("表中学生的个数为:%d\n",L.length);

(8)主函数

int main()

{

SqList L;

ElemType e;

相关文档
最新文档