ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:88.37KB ,
资源ID:22545726      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22545726.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构与算法实训内容及要求Word文档下载推荐.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构与算法实训内容及要求Word文档下载推荐.docx

1、 6、将链接存储线性表逆置,即最后一个结点变成第1个结点,原来倒数第2个结点变成第2个结点,如此等等。 7、生成有序的两个单链表A和B(链表的数据和个数自定),其首结点指针分别为a和b,要求将两个单链表合并为一个有序的单链表C,其首结点指针为c,并且合并后的单链表的数据不重复。 8、将一个首结点指针为a的单链表A分解成两个单链表A和B,其首结点指针分别为a和b,使得链表A中含有原链表A中序号为奇数的元素,而链表B中含有原链表A中序号为偶数的元素,且保持原来的相对顺序。 单链表操作菜单如下图所示:三、二叉树操作(一) 实现功能:1:初始化 2:显示(Map.txt) 3:先序遍历(递归法) 4中

2、序遍历(递归法) 5:后序遍历 (递归法) 6:统计叶子结点数目 7:二叉树深度 8:左右子树交换 9:生成二叉排序树 a:查找排序树中的结点 b:删除排序树中的结点 c:先序遍历(非递归法) d:层次遍历 e:凹入法表示二叉树 f:广义表表示二叉树 (二) 二叉树操作 1、创建。 2、用递归方法分别先序、中序、后序遍历以Tree为根指针的二叉树。 3、编写递归算法,计算二叉树中叶子结点的数目。 4、编写递归算法,计算二叉树的深度。 5、编写递归算法,将二叉树中所有结点的左、右子树相互交换。 6、使用数组elem中的随机数序列(以0表示结束,不包括0),生成以Tree为根指针的二叉排序树。 7

3、、在以Tree为根指针的二叉排序树中查找结点。 8、从以Tree为根指针的二叉排序树中删除结点(适用各种位置的结点)。 9、用非递归算法,先序遍历以Tree为根指针的二叉树。 提示:用数组 BiTNode *stackmax 构成堆栈,利用这个堆栈实现功能。 10、对以Tree为根指针的二叉树,从根结点开始,逐层从左到右输出各结点的数据。用数组 BiTNode *queuemax 构成队列,利用这个队列实现功能 11、用凹入表示法的表示以Tree为根指针的二叉树,例如:/ 324/ 123/ 746/ 690/ 567 12、用广义表表示以Tree为根指针的二叉树,例如/ (324(123(7

4、46,690),567) 13*、根据Huffman编码原理,使用数组elem中的随机数序列(以0表示结束,不包括0)作为结点的权重,生成赫夫曼树,以及赫夫曼编码,计算平均带权径长度。 14*、(1)随机生成二叉树。 (2)生成并保存先(后)序、中序输出序列。 (3)按照保存的一对输出序列恢复出二叉树。(4)生成先(后)序输出序列。二叉树操作菜单如下: 综合题部分实训内容及要求要求:第一题和第二题为必做题,第三题到第五题为选做题。最后,需要提交的内容包括:每个题目的源代码,以及该题的说明文档。说明文档的具体要求见最后的附录A。一、运动会分数统计问题描述参加运动会的n个学校编号为1n。比赛分成m

5、个男子项目和w个女子项目,项目编号分别为1m和m+1m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。写一个统计程序产生各种成绩单和得分报表。基本要求产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。测试数据对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。实现提示可以假设n=20,m=30,w=20,姓名长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取

6、前五名还是前三名)输入,并按名次顺序输入运动员姓名、校名(和成绩)。选作内容允许用户指定某项目采取其他名次取法。运动会分数统计系统菜单如下图:二、一元稀疏多项式简单计算器设计一个一元稀疏多项式简单计算器一元稀疏多项式简单计算器的基本功能是:(1)输入并建立多项式;(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,cn,en,其中n是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列;(3)多项式a和b相加,建立多项式a+b;(4)多项式a和b相减,建立多项式a-b。(1)(2x+5x3-3.1x11)+(7-5x8+11x9)=(-3.1x11+11x9+2x

7、+7)(2)(6x-3-X+4.4X2-1.2X9)-(-6X-3+5.4X2-X2+7.8X15)=(-7.8X15-1.2X9+12X-3-X)(3)(1+X+X2+X3+X4+X5)+(-X3-X4)=(1+X+X2+X5)(4)(X+X3)+(-X-X3)=0用带表头结点的单链表存储多项式。(1) 计算多项式在X处的值。(2) 计算多项式a的导函数a。(3) 多项式a和b相乘,建立乘积多项式ab。(4) 多项式的输出形式为类数学表达式。例如,多项式-3x8+6x3-18的输出形式为-3x8+6x3-18。注意,系数为1的非零次项的输出形式中略去系数1,如1x8的输出形式为x8。(5)

8、计算器的仿真界面。计算器界面如下图:三、停车场管理设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆停放在车场的最北端),若车厂内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短缴纳费用。试为停车场编制按上述要求进行管理的模拟程序。以栈模拟停车场,以队列模拟车场外的便道,

9、按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费)。/栈以顺序结构实现,队列以链表结构实现。设n=2,输入数据为(A,1,5),(A,2,10),(D,1,15),(A,3,20),(A,4,25),(A,5,30),(D,2,35),(D,4,40),(E,0,0)。其中A表示到达;D表示离去;E表示结束。需另设一个栈,临时停放为给

10、要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车牌照号码和进入停车场的时刻。(1) 两个栈共享空间,思考应开辟数组的空间是多少。(2) 汽车可有不同种类,则他们的占地面积不同,收费标准也不同,如1辆客车和1.5辆小汽车的占地面积相同,1辆十轮卡车占地面积相当于3辆小汽车的占地面积。(3) 汽车可以直接从便道上开走,此时排在它前面的汽车要先开走让路,然后再依次排到队尾。(4) 停放在便道上的汽车也收费,收费标准比停放在停车场的车低,请思考如何修改结构以满足这种要求。停车场管理菜单如下图所示:四、航空客运订

11、票系统航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。(1) 每条航线所涉及的信息有:终点站名、航班号、飞机型号、飞行周日(星期几)、乘员定额?、余票量、已定票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量);(2) 作为示意系统,全部数据可以只放在内存中;(3) 系统能实现的操作和功能如下:查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;承办定票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,

12、则为客户办理订票手续,输出座位号;若以满员或余票额少于定票额,则需重新询问客户要求。若需要,可登记排队候补;承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。自行指定。两个客户名单可分别由线性表和队列实现。为查找方便,已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作为存储结构,由于预约人数无法预计,队列也应以链表作为存储结构。整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序

13、或按终点站名有序。每条航线是这张表上的一个记录,包含上述8个域,其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向队头和队尾的指针。 当客户订票要求不能满足时,系统可向客户提供到达同一目的地的其它航线情况。还可以充分发挥自己的想象力,增加系统的功能和其他服务项目。五、简单行编辑程序文本编辑程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。限制这些操作以行为单位进行的编辑程序称为行编辑程序。被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的做法既不经济,也不总能实现。一种解决方法是逐段编辑。任何时刻只能把待编辑的文件的一段放在内存

14、中,称为活区。试按照这种方法实现一个简单的行编辑程序。设文件每行不超过320个字符,很少超过80个字符。实现以下4条基本编辑命令:(1) 行插入。格式:i文本.将文本插入活区中第行之后。(2) 行删除。d行号2删除活区中第行(到第行)。例如“d10”和“d10 14”(3) 活区切换。n将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。(4) 活区显示。p逐页的(每页20行)显示活区内容,每显示一页之后请用户决定是否继续显示以后各页(如果存在)。印出的每一行要前置行号和一个空格符,行号固定占4位,增量为1。 各条命令中的行号均须在活区中各行行号范围之内,只有插入命令的行号可以等于活区

15、第一行行号减一,表示插入当前屏幕中第一行之前,否则命令参数非法。自行设定,注意测试将活区删空等特殊情况。(1) 设活区的大小用行数ActiveMaxLen(可设为100)来描述。考虑到文本文件行长通常为正态分布,且峰值在60到70之间,用320*ActiveMaxLen大小的字符数组实现存储将造成大量浪费,可以以标准行块为单位为各行分配存储,每个标准行块可含81个字符。这些行块可以组成一个数组,也可以利用动态链表连接起来。一行文字可能占多个行块。行尾可用一个特殊的ASCII字符(如(012)8)标识。此外,还应记住活区起始行号。行插入将引起随后各行行号的顺序下推。(2) 初始化函数包括:请用户

16、提供输入文件名(空串表示无输入文件)和输出文件名,两者不能相同。然后尽可能多地从输入文件中读入各行,但不超过ActiveMaxLen-x。x的值可以自定,例如20。(3) 在执行行插入命令的过程中,每接收到一行时都要检查活区大小是否已达ActiveMaxLen。如果是,则为了在插入这一行之后仍保持活区大小不超过ActiveMaxLen,应将插入点之前的活区部分中第一行输出到输出文件中;若插入点为第一行之前,则只得将新插入的这一行输出。(4) 若输入文件尚未读完,活区切换命令可将原活区中最后几行留在活区顶部,以保持阅读连续性;否则,它意味着结束编辑或开始编辑另一个文件。(5) 可令前三条命令执行

17、后自动调用活区显示。(1) 对于命令格式非法等一切错误作严格检查和适当处理。(2) 加入更复杂的编辑操作,如对某行进行串替换;在活区内进行模式匹配等,格式可以为S串2和m。 附录附录A:(最后需要提交文档的形式)封面(见附录B)基础题部分独立做了那些题,参考别人作品做了那些题遇到过的困难,怎样解决;出现过的错误,怎样分析、发现、排除;有那些独特的做法其他心得体会综合练习部分运动会分数统计需求分析概要设计调试分析 其他心得体会用户手册 使用方法测试结果一元稀疏多项式计算器同上评语和得分表(见附录B)附录B:数据结构与算法实习实习报告学院: 计算机与信息 专业:班级:学号:姓名:20106评语:成绩:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1