数据结构实验报告 线性表的顺序表示和实现.docx
- 文档编号:9038065
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:8
- 大小:109.44KB
数据结构实验报告 线性表的顺序表示和实现.docx
《数据结构实验报告 线性表的顺序表示和实现.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告 线性表的顺序表示和实现.docx(8页珍藏版)》请在冰豆网上搜索。
数据结构实验报告线性表的顺序表示和实现
数据结构实验报告线性表的顺序表示和实现
————————————————————————————————作者:
————————————————————————————————日期:
长沙理工大学
数学与计算科学学院
实验报告
实验项目名称:
线性表的顺序表示和实现
所属课程名称:
数据结构A
实验类型:
验证性
实验日期:
2012年4月5号
班级:
信管10—02班
学号:
201044070218
姓名:
张松涛
成绩:
一、实验概述:
【实验目的】
(1)、线性表的逻辑结构特征。
①、总存在第一个和最后一个元素.
②、除第一个元素以外,每一个元素总存在唯一一个直接前驱元素。
③、除最后一个元素以外,每一个元素总存在唯一一个直接后驱元素。
(2)、顺序表的特征。
①、逻辑关系上相邻的物理位置上也相邻。
②、是一种随机存储结构,可以用一个简单直观的公式来表示每一个元素的地址。
(3)学会定义线性表的顺序存储类型,实现C程序的基本结构,对线性表的一些基本操作和具体的函数定义。
掌握顺序表的基本操作,实现顺序表的插入、删除、查找以及求并集等运算.
【实验原理】
//—----——-线性表的动态分配顺序存储结构-----—-----
#defineLIST_INIT_SIZE5//线性表存储空间的初始分配量
#defineLISTINCREMENT2//线性表存储空间的分配增量
Typedefstruct{
ElemType*elem;//存储空间基址
intlength;//当前长度
intlistsize;//当前分配的存储容量(以sizeof(ElemType)为单位)
}SqList;
【实验环境】
实验的环境:
VC++
二、实验内容:
【实验方案】
编写主函数,调用初始化,建立顺序表的算法以及插入和删除算法.调试
运行输入数据得出结果并进行分析。
【实验过程】(实验步骤、记录、数据、分析)
将源程序输入VC6.0
发现有OVERFLOW':
undeclaredidentifier,错误,是没有定义导致。
加入宏替换定义OVERFLOW’。
编译之后没有发现语法错误
连接没问题,直接运行
【实验结论】(结果)
【实验小结】(收获体会)
1.实验要细心,认真.把数据结构书上的程序要输完整,否则程序运行不了。
2.注意每个语句不要遗漏分号。
3.除了主程序正确,程序的存储结构不要漏输进去。
三、指导教师评语及成绩:
评语
评语等级
优
良
中
及格
不及格
1。
实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强
2.实验方案设计合理
3。
实验过程(实验步骤详细,记录完整,数据合理,分析透彻)
4实验结论正确.
成绩:
指导教师签名:
批阅日期:
附录1:
源程序
#include〈stdio。
h>
#include h〉 #defineTRUE1 #defineFALSE0 #defineOK1 #defineERROR0 #defineINFEASIBLE-1 #defineOVERFLOW-2 typedefintStatus; typedefintElemType; #defineLIST_INIT_SIZE5//线性表存储空间的初始分配量 #defineLISTINCREMENT10 typedefstruct{ ElemType*elem; intlength; intlistsize; }SqList; StatusInitList_Sq(SqList&L){ L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(! L。 elem)exit(OVERFLOW); L.length=0; L。 listsize=LIST_INIT_SIZE; returnOK; }//InitList_Sq ElemType*newbase,*p,*q; StatusListInsert_Sq(SqList&L,inti,ElemTypee){ if(i〈1||i〉L。 length+1)returnERROR; if(L。 length>=L。 listsize){ newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType)); if(! newbase)exit(OVERFLOW); L。 elem=newbase; L.listsize+=LISTINCREMENT; } q=&(L.elem[i—1]); for(p=&(L。 elem[L。 length—1]);p〉=q;--p)*(p+1)=*p; *q=e; ++L。 length; returnOK; }//ListInsert_Sq StatusListDelete_Sq(SqList&L,inti,ElemType&e){ if((i<1)||(i>L。 length))returnERROR; p=&(L。 elem[i-1]); e=*p; q=L.elem+L.length-1; for(++p;p〈=q;++p)*(p—1)=*p; —-L。 length; returnOK; }//ListDelete_Sq voidmain() {SqListL; inti; InitList_Sq(L); for(i=0;i<=L.listsize;i++) {scanf(”%d",&L。 elem[i]); L.length++; } for(i=0;i printf("%d",L.elem[i]); printf("\n”); ElemTypee; scanf("%d%d”,&i,&e); ListInsert_Sq(L,i,e); for(i=0;i printf("%d",*(L。 elem+i)); printf(”\n”); scanf("%d%d",&i); ListDelete_Sq(L,i,e); for(i=0;i〈L。 length;i++) printf(”%d”,*(L。 elem+i)); printf("\n"); } 附录2: 实验报告填写说明 1.实验项目名称: 要求与实验教学大纲一致。 2.实验目的: 目的要明确,要抓住重点,符合实验教学大纲要求。 3.实验原理: 简要说明本实验项目所涉及的理论知识。 4.实验环境: 实验用的软、硬件环境。 5.实验方案(思路、步骤和方法等): 这是实验报告极其重要的内容。 概括整个实验过程. 对于验证性实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步骤来实现其操作。 对于设计性和综合性实验,在上述内容基础上还应该画出流程图、设计思路和设计方法,再配以相应的文字说明。 对于创新性实验,还应注明其创新点、特色。 6.实验过程(实验中涉及的记录、数据、分析): 写明具体实验方案的具体实施步骤,包括实验过程中的记录、数据和相应的分析. 7.实验结论(结果): 根据实验过程中得到的结果,做出结论。 8.实验小结: 本次实验心得体会、思考和建议。 9.指导教师评语及成绩: 指导教师依据学生的实际报告内容,给出本次实验报告的评价。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构实验报告 线性表的顺序表示和实现 数据结构 实验 报告 线性 顺序 表示 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)