文档详情

数据结构实验报告线性表的顺序表示与实现.doc

发布:2018-08-25约3.34千字共12页下载文档
文本预览下载声明
PAGE PAGE 4 数学与计算科学学院 实 验 报 告 实验项目名称 :线性表的顺序表示和实现 所属课程名称 : 数据结构A 实 验 类 型 : 验证性 实 验 日 期 : 2012年4月5号 班 级 : 信管10-02班 学 号: 8 姓 名: 张松涛 成 绩 : 一、实验概述: 【实验目的】 (1)、线性表的逻辑结构特征。 ①、总存在第一个和最后一个元素。 ②、除第一个元素以外,每一个元素总存在唯一一个直接前驱元素。 ③、除最后一个元素以外,每一个元素总存在唯一一个直接后驱元素。 (2)、顺序表的特征。 ①、逻辑关系上相邻的物理位置上也相邻。 ②、是一种随机存储结构,可以用一个简单直观的公式来表示每一个元素的地址。 (3)学会定义线性表的顺序存储类型,实现C程序的基本结构,对线性表的一些基本操作和具体的函数定义。掌握顺序表的基本操作,实现顺序表的插入、删除、查找以及求并集等运算。 【实验原理】 //线性表的动态分配顺序存储结构 #define LIST_INIT_SIZE 5 //线性表存储空间的初始分配量 #define LISTINCREMENT 2 //线性表存储空间的分配增量 Typedef struct{ ElemType *elem; //存储空间基址 int length; //当前长度 int listsize; //当前分配的存储容量(以sizeof(ElemType)为单位) }SqList; 【实验环境】 实验的环境:VC++ 二、实验内容: 【实验方案】 编写主函数,调用初始化,建立顺序表的算法以及插入和删除算法。调试 运行输入数据得出结果并进行分析。 【实验过程】(实验步骤、记录、数据、分析) 将源程序输入VC6.0 发现有OVERFLOW : undeclared identifier,错误,是没有定义导致。 加入宏替换定义OVERFLOW。 编译之后没有发现语法错误 连接没问题,直接运行 【实验结论】(结果) 【实验小结】(收获体会) 实验要细心,认真。把数据结构书上的程序要输完整,否则程序运行不了。 注意每个语句不要遗漏分号。 除了主程序正确,程序的存储结构不要漏输进去。 三、指导教师评语及成绩: 评 语 评语等级 优 良 中 及格 不及格 1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强 2.实验方案设计合理 3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻) 4实验结论正确. 成 绩: 指导教师签名: 批阅日期: 附录1:源 程 序 #include stdio.h #include stdlib.h #define TRUE 1 #define FALSE 0 #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 10 typedef struct{ ElemType *elem; int length; int listsize; }SqList; Status InitList_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; return OK; }// InitList_Sq ElemType *newbase,*p,*q; Status ListInsert_Sq(SqList L,int i,ElemType e){ if(i1 || iL.length+1) return ERROR; if(L.length=L.listsize){ newbase=(ElemType *)realloc(L.elem,(L
显示全部
相似文档