资源描述
杭州国际服务工程学院实验报告
课程名称 数据结构基础
实验项目名称 实验五 线性表的顺序表示和实现
学生姓名 专业班级 学号
实验成绩 指导老师(签名 ) 日期
一. 实验目的和要求
1、学会定义线性表的动态分配顺序存储结构。
2、掌握线性表的动态分配顺序存储结构及基本操作实现函数。
3、进一步熟悉C语言函数的基本结构,掌握程序中的头文件、实现文件和主文件之间的相互关系及各自的作用。
二. 实验内容
1、编写应用程序(填空),实现可以在顺序表中插入任意给定数据类型(定义为抽象数据类型)数据的功能。要求在主函数中定义顺序表并对该顺序表插入若干个整数类型的数据(正整数),对它们求和并输出。请使用动态内存分配的方式申请数组空间,并把主函数设计为一个文件test5.cpp,其余函数设计为另一个文件SeqList.h。
请填空完成以下给出的源代码并调试通过。
(1) 文件SeqList.h:
typedef struct {
ElemType *list;
int size;
int MaxSize;
} SeqList;
void InitList(SeqList &L) //初始化线性表
{
//设置数组最大容量
//申请空间,将空间首地址赋给list
//设置线性表使用长度为0
}
void ClearList(SeqList &L) //清除线性表
{ //1. 销毁数组空间
// 2. 设置线性表为空表,最大容量为0
// 3. 设置线性表使用长度为0
}
int LengthList(SeqList L) //求线性表长度
{
………..
}
bool InsertList(SeqList &L, ElemType item, int i)
//在线性表第i个位置插入一个值为item元素
{
if( ){
printf("线形表已满\n");
return 0;
}
if( ){
printf("插入位置不正确\n");
return 0;
}
if( ){ //插入位置不在线性表表尾
for(int k=L.size;k>=i;k--)
}
//将item放入线性表第i个位置
L.size++;
return 1;
}
ElemType GetList(SeqList L, int i)
{ //返回线性表L中第i个位置上的元素值
}
(2)文件test5.cpp:
#include <stdio.h>
#include <stdlib.h>
typedef ElemType;
#include "SeqList.h"
void main( )
{
SeqList myList;
int i=1, x, sum=0, n;
InitList ( );
scanf(“%d”, &x);
while ( x!= -1 )
{
if ( InsertList (myList, , i )==0) {
printf("错误!\n");
return ;
}
i++;
scanf(“%d”, &x);
}
n = LengthList (myList);
for (i=1; i<=n; i++)
{
x=GetList(myList, i);
sum = + x;
}
printf("%d\n ", sum);
ClearList(myList);
}
2、选做部分:编写函数bool DeleteList(ListType &L, int i, ElemType &e) 实现删除顺序表L中第i个元素,并用e返回其值,要求把该函数添加到文件SeqList.h中,并在主函数文件test5.cpp中添加相应语句进行测试。
3、填写实验报告,实验报告文件取名为report5.doc。
4、将实验报告文件report5.doc 、源程序文件test5.cpp及SeqList.h打包命名为学号_姓名_test5.rar并上交。
三. 函数的功能说明及算法思路
(包括每个函数的功能说明,及一些重要函数的算法实现思路)
四. 实验结果与分析
(包括运行结果截图、结果分析等)
五. 心得体会
(记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。)
【附录----源程序】
展开阅读全文