XX学院计算机科学与技术系
实验报告本
撰写及拟改实验报告注意事项
一、填写信息
1、填写信息齐全、字迹清晰、日期真实;
2、每次实验信息应填写完整,如:实验序号及实验项目;
3、每次实验时间应如实填写完整,如:第 周 星期 第 节;
4、实验报告撰写认真细致,图例完整,有大量源代码的可以附页。
二、批改实验报告
1、一律采用等级制;
2、批改时应对错分明,错误之处应有文字说明或指出错误的标记;
3、批改后的签名和日期应完整。
计算机专业实验课程考试与考核
为推动实验教学改革,规范实验课程考试与考核,提高学生实践动手能力。计算机专业实验部对实验课程考试与考核方法如下规定。
1、考核以实验课程的教学大纲为准。
2、根据课程性质,采用考核制,总成绩采用等级制计分。
以本实验课程完成的实验内容为依托,独立完成老师布置的验证性、综合性、设计性、创新性实验项目。重点考查学生实验态度,在实验过程中能否及时发现问题,解决问题,是否有创新性设计思想。
Ø 实验过程考核
● 学生在实验过程中能否独立、及时完成实验任务,态度是否端正,对工具、仪器能否正确使用等;
● 实验操作是否规范、代码编写是否正确;
● 实验报告撰写是否规范、工整。
Ø 实验成绩评分标准
● 独立完成实验项目,实验结果正确,实验报告撰写规范,并有创新性设计思想;优;
● 独立完成实验项目,实验结果正确,实验报告撰写规范。良;
● 独立完成实验项目,实验结果基本正确,实验报告撰写规范。中;
● 在老师的指导下,基本完成实验项目,实验结果基本正确,实验报告撰写规范。及格;
● 不能完成实验项目,实验结果不正确,实验报告撰写不规范。不及格。
实验项目名称 线性链表的实现与应用 实验项目评分
实验序号 1 实验时间 2 周 星期 第 节
指导教师签名 批改报告时间 20## 年 9 月 日
第二篇:数据结构线性表实验报告
《数据结构》实验报告
院系 应用科技学院专业电子信息工程
姓名 ## 学号
10 级 电信班 20## 年 10 月 11日
1.实验目的
1.掌握线性表的基本运算。
2.掌握顺序村存储的概念,学会对顺序存储数据结构进行操作。
3.加深对顺序存储数据结构的理解,逐步培养解决实际问题的编程能力。
2.需求分析
要求用c语言编写一个演示程序,首先建立一个空表,然后根据用户选择,能够在线性表的任意位置实现插入元素、删除元素、初始化线性表、查找某一元素的在线性表中得位置。
(1)建立线性表的功能
l 输入的形式和输入的范围:调用出入函数,输入插入的位置和数值,用逗号隔开
l 输出的形式:调用输出函数,按顺序输出线性表所插入的值,以及所对应功能的值。
(2)插入功能
l 输入的形式和输入值的范围:输入一个表示位置的正整数和一个表示插入元素值的正整数,两个正整数之间用逗号隔开,出入位置的和法取值范围是1
l 输出的形式:如果输入的参数合法,则按顺序显示插入后的线性表,否则显示错误。
(3)删除功能
l 输入的形式和输入值的范围:输入一个表示删除位置或要删除的元素值的正整数,删除位置或删除元素值的取值范围是1
l 输出的形式:如果输入参数合法,则按顺序显示删除后线性表中的各个元素值,否则显示参数错误的信息。
(4)查找功能
l 输入的形式和输入值的范围:输入一个要查找的元素值,元素值的合法取值范围是正整数。
l 输出的形式:如果存在要查找的元素,则显示要查找元素的位置,否则显示参数错误信息。
3.概要设计
(1)为了实现上述程序功能,需要第一一个简化的线性表抽象数据类型:
Typedef struct LinearList{
Int *list;
Int size;
Int MAXSIZE;
}List;
基本操作:
l 初始化线性表ListInit (L)
操作前提:L是一个未初始化的线性表
操作结果:将L初始化成一个空的线性表
l 向空表指定位置插入元素 ListInsert (L)
操作前提:L是一个还有位置的线性表
操作结果:将元素插入到指定位子并输出线性表
l 删除指定元素值 ListDelete_1(L)
操作前提:线性表L存在
操作结果:将线性表中指定的元素值删除,并输出线性表
l 删除指定位置的元素值 ListDelete_2(L)
操作前提:线性表L存在
操作结果:将线性表中指定位置的元素值删除,并输出线性表
l 查找线性表中的元素 ListFind(L)
操作前提:线性表L存在
操作结果:在线性表L中查找指定元素e,若存在该元素返回该元素在表中的位置,否则提示错误
l 输出线性表元素 OutputList(L)
操作前提:线性表存在
操作结果:输出整线性表L的所有元素值
(2)本程序共有6函数:
l 主函数main()
l 初始化线性表函数InitList()
l 输出函数OutputList()
l 插入函数ListInsert()
l 删除函数ListDelete()
l 查找函数ListFind()
各函数的关系如下:
l 主函数Main()调用初始化线性表函数InitList()、插入函数ListInsert()、删除函数ListDelete()、查找函数ListFind()、查找函数ListFind()
l 插入函数ListInsert()调用输出函数OutputList(L)
l 删除函数ListDelete()调用输出函数OutputList(L)
l 查找函数ListFind()调用输出函数OutputList(L)
(3)主函数的伪码
Main()
{ 定义一个字符参数 ch;
定义整形元素位置参数 i;
定义整形参数e,j=1;
说明一个线性表L;
循环做下面处理,直到读入的为‘y’时推出:
{
根据具体选项,读入需要的数据,做下面的选择处理,知道循环结束:
{
根据所选择选项调用相关的函数进行处理,然后输出处理后的线性表以及所要执行的内容。
}
}
}
4.详细设计
采用线性表实现概要设计中的定义的抽象数据类型,有关数据数据类型和伪码算法定义如下:
(1)类型定义
typedef struct LinearList
{
int *list;
int size;
int MAXSIZE;
}List;
(2)基本操作的伪码算法
l 初始化
void InitList(List &L)
{
构造一个空表L;
定义空表长度为0;
初始存储空间的容量;
}
l 插入操作
void ListInsert(List &L, int i, int e)
{
Int *p;
判断位置i是否合法 不合法返回空;
判断当前容量是否已满
{
申请一个新的基止newbase;
L.list=newbase;
增加存储容量;
}
定义插入位置*q;
p>=q;
--p) *(p+1) = *p;
插入元素e;
表长加1;
}
l 删除操作
int ListDelete_1(List &L, int e, int &i)
{
定义三个指针*p,*q,*m;
P=L.list;;
循环做下面处理
{
If(*p=e);
{
m=p;
q=L.list+L.size-1;
被删除元素之后的元素左移;
表长减1;
continue;
p++;
} i++;
} return 1;
}
l 查找操作
int ListFind(List L, int e)
/*在顺序线性表L中查找第1个值与e满足compare()的元素的位序。
若找到,则返回其在L中的位序,否则返回0。*/
{
定义第一元素的存储位置为1;
P=首元素的地址;
While(i不能超过表长)
++I;
if (i <= L.size)
return i;
else
return 0;
}
5.使用说明
程序名为实验1.exe,程序执行过程如下:
运行程序显示如下菜单:
printf("\t\t\t ---线 性 表--- \n");
printf("\n\t\t\t********************************");
printf("\n\t\t\t* 1-----初 始 化 *");
printf("\n\t\t\t* 2-----插入元数值 *");
printf("\n\t\t\t* 3-----删除指定元素值 *");
printf("\n\t\t\t* 4-----删除指定位置 *");
printf("\n\t\t\t* 5-----查找线性表中的元素 *");
printf("\n\t\t\t* 6-----输出线性表元素 *");
printf("\n\t\t\t* 0-----退 出 *");
printf("\n\t\t\t********************************\n");
printf("请选择菜单号(0-6): ");
用户输入0~6的数字,选择执行相应的功能。
每执行一次功能,就会显示执行的结果以及执行后线性表的内容。
l 选择0:提示是否退出程序,输入y退出,输入n返回菜单。
l 选择1:初始化线性表
l 选择2:提示“请输入位置i和数值e:”,要求用户输入一个表示插入元素位置的
和一个表示插入元素的正整数,两个数之间用空格隔开。如果插入合法,按顺序输出线性表,否则提示错误!
l 选择3: 提示“请输入要删除的元素值e:”,要求用户输入一个表示删除元素的正
整数, 删除元素的合法范围是正整数。如果输入参数合法,按顺序输出线性表,否则提示错误!
l 选择4:提示“请输入要删除的指定位置i:”, 要求用户输入一个表示删除位置的
正整数, 删除位置的合法范围是1到当前线性表的长度。如果输入参数合法,按顺序输出线性表,否则提示错误!
l 选择5:提示“请输入线性表中要查找的元素e:”,要求用户输入一个要查找的元
素值,元素的合法范围是正整数。如果输入元素值合法,输出所查找元素值在线性表中的位置,否则提示错误!
l 选择6:直接输出整个线性表。
6.测试结果
程序运行显示一下菜单:
---线性表--- ********************************
* 1-----初始化 *
* 2-----插入元数值 *
* 3-----删除指定元素值 *
* 4-----删除指定位置 *
* 5-----查找线性表中的元素 *
* 6-----输出线性表元素 *
* 0-----退 出 *
********************************
请选择菜单号(0-6):
(1)初始化操作:
l 选择1
初始化线性表
屏幕提示“初始化成功!”
再次提示选择菜单
(2)插入操作:
l 选择2
屏幕提示“请输入位置i和数值e:”
输入1 1
屏幕显示输出线性表元素:1 插入成功!
屏幕显示选择菜单
l 选择2
屏幕提示“请输入位置i和数值e:”
输入2 2
屏幕显示输出线性表元素:1 插入成功!
屏幕显示选择菜单
l 选择2
屏幕提示“请输入位置i和数值e:”
输入3 3
屏幕显示输出线性表元素:1 插入成功!
屏幕显示选择菜单
l 选择2
屏幕提示“请输入位置i和数值e:”
输入5 5
屏幕显示插入位置错误!输出线性表元素:1
屏幕显示选择菜单
(3)删除指定元素值操作:
l 选择 3
屏幕提示“请输入要删除的元素值e:”
输入2后,
屏幕显示输出线性表:1 3删除成功!再次显示选择菜单
l 选择4
屏幕提示“请输入要删除的指定位置i:”
输入1后,
屏幕显示输出线性表:3删除成功!再次显示选择菜单
(4)删除指定位置元素操作:
l 选择4
屏幕显示“请输入要删除的指定位置i:”
输入2
屏幕显示删除成功!
输出线性表元素有:1 3
(5)查找操作:
l 选择5
屏幕显示“请输入线性表中要查找的元素e:”
输入3,
屏幕显示该元数值在线性表中第 3 位
输出线性表元素:1 2 3
输入 4,
屏幕显示该元素值不在线性表中,并输出线性表元素:1 2 3
再次回到选择菜单
(6)显示:
l 选择6
屏幕显示线性表元素有:1 2 3
再次回到选择菜单
(7)退出:
l 选择0,
屏幕提示“是否真的退出程序y/n:”
输入n,
屏幕显示请重新选择...: 再次显示程序选择菜单
输入y,
屏幕显示退出程序!Press any key to continue