数据结构实验研究报告线性表的顺序表示和实现Word下载.docx
- 文档编号:20618326
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:8
- 大小:51.33KB
数据结构实验研究报告线性表的顺序表示和实现Word下载.docx
《数据结构实验研究报告线性表的顺序表示和实现Word下载.docx》由会员分享,可在线阅读,更多相关《数据结构实验研究报告线性表的顺序表示和实现Word下载.docx(8页珍藏版)》请在冰豆网上搜索。
一、实验概述:
【实验目的】
(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>
stdlib.h>
#defineTRUE1
#defineFALSE0
#defineOK1
#defineERROR0
#defineINFEASIBLE-1
#defineOVERFLOW-2
typedefintStatus;
typedefintElemType;
#defineLIST_INIT_SIZE5//线性表存储空间的初始分配量
#defineLISTINCREMENT10
typedefstruct{
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));
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;
}//ListInsert_Sq
StatusListDelete_Sq(SqList&
L,inti,ElemType&
e){
if((i<
1)||(i>
L.length))returnERROR;
p=&
e=*p;
q=L.elem+L.length-1;
for(++p;
p<
++p)*(p-1)=*p;
--L.length;
}//ListDelete_Sq
voidmain()
{SqListL;
inti;
InitList_Sq(L);
for(i=0;
i<
=L.listsize;
i++)
{scanf("
%d"
&
L.elem[i]);
L.length++;
L.length;
printf("
%d"
L.elem[i]);
\n"
);
ElemTypee;
scanf("
%d%d"
i,&
e);
ListInsert_Sq(L,i,e);
*(L.elem+i));
scanf("
i);
ListDelete_Sq(L,i,e);
}
附录2:
实验报告填写说明
1.实验项目名称:
要求与实验教学大纲一致。
2.实验目的:
目的要明确,要抓住重点,符合实验教学大纲要求。
3.实验原理:
简要说明本实验项目所涉及的理论知识。
4.实验环境:
实验用的软、硬件环境。
5.实验方案(思路、步骤和方法等):
这是实验报告极其重要的内容。
概括整个实验过程。
对于验证性实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步骤来实现其操作。
对于设计性和综合性实验,在上述内容基础上还应该画出流程图、设计思路和设计方法,再配以相应的文字说明。
对于创新性实验,还应注明其创新点、特色。
6.实验过程(实验中涉及的记录、数据、分析):
写明具体实验方案的具体实施步骤,包括实验过程中的记录、数据和相应的分析。
7.实验结论(结果):
根据实验过程中得到的结果,做出结论。
8.实验小结:
本次实验心得体会、思考和建议。
9.指导教师评语及成绩:
指导教师依据学生的实际报告内容,给出本次实验报告的评价。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 研究 报告 线性 顺序 表示 实现