实验报告.线性表的顺序表示和实现
数学与计算科学学院
实 验 报 告
实验项目名称 :线性表的顺序表示和实现
所属课程名称 : 数据结构A
实 验 类 型 : 验证性
实 验 日 期 : 2012年4月5号
班 级 :
学 号:
姓 名:
成 绩 :
一、实验概述:【实验目的】
(1)、线性表的逻辑结构特征。
①、总存在第一个和最后一个元素。
②、除第一个元素以外,每一个元素总存在唯一一个直接前驱元素。
③、除最后一个元素以外,每一个元素总存在唯一一个直接后驱元素。
(2)、顺序表的特征。
①、逻辑关系上相邻的物理位置上也相邻。
②、是一种随机存储结构,可以用一个简单直观的公式来表示每一个元素的地址。
(3)、通过上机实验验证线性表的顺序结构的正确性,了解算法与程序的区别。
【实验原理】
//--------线性表的动态分配顺序存储结构-----------
#define LIST_INIT_SIZE 5 //线性表存储空间的初始分配量
#define LISTINCREMENT 2 //线性表存储空间的分配增量
typedef struct{
ElemType *elem; //存储空间基址
int length; //当前长度
int listsize; //当前分配的存储容量(以sizeof(ElemType)为单位)
}SqList;
【实验环境】
实验的环境:VC++二、实验内容:【实验方案】
编写主函数,调用初始化,建立顺序表的算法以及插入和删除算法。调试
运行输入数据得出结果并进行分析。
【实验过程】(实验步骤、记录、数据、分析)
实验步骤:
(1)、在VC++环境下输入各个算法和主函数。
(2)、输完以上的东西后,再对程序进行编译。
编译完后主要出现以下几个主要错误:
①、算法和函数中出现了一些系统无法识别的变量,照成程序出现了错误。
②、程序中出现了这样的错误:
D:\软件\Microsoft Visual C++ V6.0 简体中文企业版\Cpp1.cpp(50) : error C2018: unknown character '0xa3
③、程序中的错误:
D:\软件\Microsoft Visual C++ V6.0 简体中文企业版\Cpp1.cpp(8) : error C2144: syntax error : missing ';' before type 'int'
④、在程序中还出现了大量的输入的错误。比如大小写的问题,前后的
函数名不一致的问题等等。
编译完成以后,接下来是找到错误进行调试。调试过程中找出错误的原因,然后进行分析。
发生错误的主要原因如下:
①、在输入程序的过程中由于粗心造成了大量的输入错误。
②、没有注意算法与源程序的区别。算法是简单的对源程序进行描述的,是给人阅读的,所以有些变量没有定义我们就能看懂。而程序中的变量一定要先定义才能够被引用,才能被计算机识别。
③、强制类型转换也是C语言中的一个语句,所以语句完成以后后面要加分号来表示语句结束。所以才会出现第三的错误。
④、在C程序的输入过程中。一律要在英文字母的条件下进行输入,否则就会出现第二种错误,使系统无法识别。
(3)、调试完成以后,程序中没有了错误。然后执行。在命令窗口中输入数据进行验证。出现了如下图所示的错误:
在进行删除的算法的过程中,最后那个数字“5”出现了两次,与实验要求的结果不一致。后来经老师的指点,找出了原因的所在。
原因:在执行删除算法以后,变长要减1.经改正以后得出了正确的结论。最后成功完成了实验,得出了正确的结果。
【实验结论(结果)小结结论#include
#include
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
typedef int ElemType;
#define LIST_INIT_SIZE 5 // 初始分配存储量
#define LISTINCREMENT 2 //分配增量
typedef