数学与计算科学学院
实验报告
实验项目名称线性表的顺序表示和实现
所属课程名称数据结构
实验类型验证型
实验日期
班级信计1201
学号 201253100109
姓名
成绩
一、实验概述:
【实验目的】
一、了解线性表的逻辑结构特征:总存在第一个和最后一个元素;除第一个元素以外,每个元素总存在唯一一个直接前驱元素;除最后一个元素以外,每个元素总有唯一一个直接后继元素。
二、掌握线性表的基本操作在顺序存储结构上的实现
【实验原理】
1、顺序表的特点:逻辑上相邻物理上相邻;是一种随机存储结构,其存储位置可以用一个简单、直观的公式表示。
2、线性表的动态分配顺序存储结构:
#define LIST_INIT_SIZE 6 //线性表存储空间的初始分配量
#define LISTINCREMENT 2 //线性表存储空间的分配增量
Typedef struct{
ElemTYpe *elem; //存储空间基址
Int length; //当前长度
Int listsize; //当前分配的存储容量
}SqList;
【实验环境】
VC ++
二、实验内容:
【实验方案】
编写主函数,调用顺序表的初始化建空表、插入和删除算法,调制运行,得出结果。
【实验过程】(实验步骤、记录、数据、分析)
1、输入顺序表的初始化建空表、插入、删除算法以及主函数:
//线性表的动态分配顺序存储结构
#define LIST_INIT_SIZE 6//线性表存储空间的初始分配量
#define LISTINCREMENT 2//线性表存储空间的分配增量
typedef struct{
ElemType *elem;//存储空间基址
int length;//当前长度
int listsize;//当前分配的存储容量
}SqList;
Status InitList_Sq(SqList &L){
//构造一个空的线性表L。
………………
}// InitList_Sq
Status ListInsert_Sq(SqList &L,int i,ElemType e){
//在顺序线性表L中第i个位置之前插入新的元素e
………………
}// ListInsert_Sq
Status ListDelete_Sq(SqList &L,int i,ElemType &e){
//在线性顺序表L中删除第i个元素,并用e返回其值
………………
}// ListDelete_Sq
void main()
{
SqList L;int i;
InitList_Sq(L);
for(i=0;i<List_INIT_SIZE,i++){
scanf("%d",&[i]);
++;
}
for(i=0;i<;i++)
printf("%d ",[i]);
printf("\n");
ElemType e;
scanf("%d%d",&i,&e);
ListInsert_Sq(L,i,e);
for(i=0;i<;i++)
printf("%d",
线性表的顺序表示和实现 来自淘豆网www.taodocs.com转载请标明出处.