实验一 线性表及其应用
班级:学号:姓名:实验目的:
通过实验题的上机实践,帮助学生掌握线性表的基本操作在两种存储结构上算法的实现,特别是链表的操作和应用作为重点。
实验内容:
选题1: 在线性表中删除某些元素的算法实现
【问题描述】
已知A、B和C为三个递增有序的线性表,现要求对A表作如下操作:删除那些既在B表中出现又在C表中出现的元素。
【基本要求】
试对顺序表编写实现上述操作的算法并上机编写代码,要求算法尽可能高效。在实验报告中分析你的算法的时间复杂度。
【提示及分析】
A表中要删除的元素实际上就是在三个表中都存在的元素。注意这三个线性表都是递增有序的线性表!可以利用这一性质减少对线性表“扫描”的趟数。
选题2: 线性表的就地逆置
【问题描述】
线性表的就地逆置是指在线性表现有空间的基础上,将线性表中的数据元素交换位置排列,排列完之后,新的顺序序列与原来的顺序序列刚好相反。如原来序列为“abcdef”,就地逆置后的新顺序序列为“fedcba”。现根据基本线性表的链式存储结构完成就地逆
置。
【基本要求】
充分理解题目的要求,在对链表实现逆置时,必须是在基本线性表原有空间的基础上进行,不能借助临时变量所申请的临时空间,也不能借助其他形式的临时空间。
【提示及分析】
可以看出这一程序是对链表知识的实践,运用的是单链表。逆置方法:将链表的第1和第2个结点间断开成前后两个链表,用指针head指向前面单个结点的链表,而用指针q指向后面断开部分的链表,每次将指针q 指向链表的第1个结点取出,然后插入到head链表中,指针head指向的链表即为所求的逆置链表。
选题3: 约瑟夫环
【问题描述】
假设有n个编号为1,2,3,…,n的人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,并将其密码值作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,以此类推下去,直到所有的人全部出列为止。试设计一个程序,可以在用户确定了人数和密码的情况下,求出对应的出列顺序。
【基本要求】
采用循环单链表作为存储结构,按照出列的顺序打印出各人的编号。
【提示及分析】
可以看出这一题是考查单链表的应用,而且这一题中的循环单链表是不需要“头结点”的,要注意空表和非空表的界限。程序运行后要求用户指定初始报数上界值,人数及各人的密码。可先设n≤30。“出列”操作即单链表的结点删除,可参考例题。
【选作内容】
选用顺序存储结构再实现以上部分。
【解题思路】
【算法】
【测试数据】
【测试结果】
注:
上交的文件包括两个,一个实验报告,一个源文件,放在以学号+姓名+S+实验序号命名的文件夹下,其中实验报告为word文档,文件名统一为:学号+姓名+S+实验报告序号,如:张三第一次上交的实验报告,则文件名为:2010111111张三S1
如:文件夹为:2010123456张三S1
其下有两个文件:实验报告:文件名为2010123456张三S线性表,源CPP文件。
第二篇:机械设计实验报告格式要求
机构运动简图的测绘与分析实验报告
院 专业班级 姓名 学号
实验日期: 年 月 日
指导教师签名:
带传动实验原始数据记录
院 专业班级 姓名 学号
实验日期: 年 月 日 同组人姓名
仪器编号:
实验数据记录:
表1
2F0= N n0= rpm
表2
2F0= N n0= rpm
指导教师签名
带传动实验报告
院 专业班级 姓名 学号
实验日期: 年 月 日 同组人姓名
仪器编号:
1. 测试数据及结果
表1
2F0= N n0= rpm
表2
2F0= N n0= rpm
轴系结构测绘与分析实验报告
院 专业班级 姓名 学号
实验日期: 年 月 日 同组人姓名
模型编号:
一、主要尺寸表
二、绘制轴系装配图(另附图纸)
轴系类型:
要求:
1. 按比例尺绘制轴系装配图;
2. 标注主要尺寸(如传动件的最大外圆、宽度、轴承的支点距离、传动件及轴承与轴的配合尺寸等);
3. 编写零件明细表。
三、轴系结构分析说明(说明轴上零件的定位、固定方式,滚动轴承的安装、调整、润滑与密封方法)。
四、实验的心得体会和意见
减速器拆装实验报告
院 专业班级 姓名 学号
实验日期: 年 月 日 同组人姓名
模型编号:
一、测量的数据
二、减速器主要零件的名称与用途
三、拆装的减速器,指出哪些地方不合理。为什么?如何改进设计?
四、实验的心得体会和意见
指导教师签名: