1 / 20
文档名称:

数据结构课程实验报告.docx

格式:docx   大小:50KB   页数:20页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构课程实验报告.docx

上传人:likuilian1 2022/3/22 文件大小:50 KB

下载得到文件列表

数据结构课程实验报告.docx

文档介绍

文档介绍:.
课程实验报告课程名称:数据结构上机实验
专业班级:信息安全1302班学号:
姓名:
指导教师:
报告日期:
计算机科学与技术学院
1课程实验概述
错误!未定义书签。
2实验一基于顺序结构的线性表实现

free(L->elem);
L->elem=NULL;
L->length=0;
L->listsize=0;
returnOK;}
(3) ClearList(L)功能
将线性表L置为空表,但是与DestroyList(*L)功能不同的是,ClearList(L)并不会销毁物理空间。具体实现如下:
statusClearList(SqListL){//将L重置为空表。
=0;returnOK;
}
(4) ListEmpty(L)功能
。若L为空表,贝^返回TRUE,否则返回FALSE。具体实现如下:
statusListEmpty(SqListL){〃若L为空表,则返回TRUE,否贝U返回FALSE0if(!){printf("\n线性表L为空表!\n");returnFALSE;}else(printf("\n线性表L不是空表!\n");returnTRUE;}
}
(5) ListLength(L)功能
直接调用头结点的信息即可返回L中的元素个数。具体实现如下:
intListLength(SqListL)(〃返回L中数据元素的个数。
return++;
}
(6) GetElem(L,i,*e)功能
传入的是头结点值、元素位置i和节点位置。具体实现如下:
statusGetElem(SqListL,inti,Elemtype*e)(
〃用e返回L中第i个数据元素的值。
if((i<1)||(i>))returnERROR;//i值不合法e->item1=([i-1]).item1;
returnOK;}
(7) LocatElem(L,e,compare()勘能
采用顺序遍历的方法从表头遍历查找,一旦找到满足compare。关系的元素,则返回元素的位序,所以时间复杂度为O(n)。具体实现如下:
statusLocatElem(SqListL,Elemtypee,status(*compare)(Elemtype,Elemtype))(
〃返回L中第一个与e满足关系compare()W数据元素的位序。若这样的数据元素不存在,则返回值为0。
inti=0;
while(i<&&!((*compare)([i],e)))++i;
if(i<)(
returni;
printf("线性表L中第一个与e满足compare关系的数据元素的位序为:%d\n",i);
}elsereturn0;}
PriorElem(L,cur,*pre_e)功能实现此功能的主要关键在于尼为元素cur,所以我的思想是调用前面已经实现了的函数LocatElem(L,e,compare()),确定并返回制定元素的位置,所以时间复杂度为O(n)。具体实现如下:
statusPriorElem(SqListL,Elemtypecur,Elemtype*pre_e)(
〃若cur是L的数据元素,且不是第一个,则用pre_e返回它的前一个元素的内容,否则操作失败,pre_e无定义。
intj;
if(j=LocatElem(L,cur,equal)){if(j>1)(*pre_e=[j-2];printf("cur的前一个元素为:%d”,*pre_e);return1;}elseprintf("cur是L中的第一个元素!\n");
}
elseprintf("cur不是L中的元素!\n");}
NextElem(L,cur,*next_e)功能此功能的实现和PriorElem(L,cur,*pre_e)相似,也是利用LocatElem(L,e,compare())来定为元素。具体实现如下:
statusNextElem(SqListL,Elemtypecur,Elemtype*next_e){
〃若cur是L的数据元素,且不是最后一个,则用"next_e返回它的后一个元素的内容,否则操作失败,next_e无定义。
intj;
if(j=LocatElem(L,cur,equal)){if(j<){*next_e=[j+1];printf("cur的后一个元素为:%d”,*next_e);return1;}e