数据结构实验报告线性表的顺序表示与实现.doc
文本预览下载声明
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
显示全部