数据结构上机题目Word下载.docx

上传人:b****6 文档编号:16669684 上传时间:2022-11-25 格式:DOCX 页数:10 大小:17.77KB
下载 相关 举报
数据结构上机题目Word下载.docx_第1页
第1页 / 共10页
数据结构上机题目Word下载.docx_第2页
第2页 / 共10页
数据结构上机题目Word下载.docx_第3页
第3页 / 共10页
数据结构上机题目Word下载.docx_第4页
第4页 / 共10页
数据结构上机题目Word下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

数据结构上机题目Word下载.docx

《数据结构上机题目Word下载.docx》由会员分享,可在线阅读,更多相关《数据结构上机题目Word下载.docx(10页珍藏版)》请在冰豆网上搜索。

数据结构上机题目Word下载.docx

2.15已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n。

试写一算法将这两个链表连接在一起(即令其中一个表的首元结点连在另一个表的最后一个结点之后),假设指针hc指向连接后的链表的头结点,并要求算法以尽可能短的时间完成连接运算。

请分析你的算法的时间复杂度。

2.19已知线性表中的元素以值递增有序排列,并以单链表作存储结构。

试写一高效的算法,删除表中所有值大于mink且小于maxk的元素(若表中存在这样的元素),同时释放被删结点空间,并分析你的算法的时间复杂度(注意,mink和maxk是给定的两个参变量,它们的值可以和表中的元素相同,也可以不同)。

第四次:

cdLinkList-循环链表

2.33已知由一个线性链表表示的线性表中含有三类字符的数据元素(如:

字母字符、数字字符和其他字符),试编写算法将该线性表分割为三个循环链表,其中每个循环链表表示的线性表中均只含一类字符。

2.38设有一个双向循环链表,每个结点中除有prior,data和next三个域外,还增设了一个访问频度域freq。

在链表被起用之前,频度域freq的值均初始化为零,而每当对链表进行一次LOCATE(L,x)的操作后,被访问的结点(即元素值等于x的结点)中的频度域freq的值便增1,同时调整链表中结点之间的次序,使其按访问频度非递增的次序顺序排列,以便始终保持被频繁访问的结点总是靠近表头结点。

试编写符合上述要求的LOCATE操作的算法。

第五次:

outqueue-实验1线性表

实验目的

熟悉线性表的基本运算在顺序存储结构和链式存储结构上的实现,其中重点熟悉链表的各种操作。

时间要求:

4学时

问题描述:

约瑟夫(Joseph)问题的一种描述是:

编号为1,2,3,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码〈正整数〉,一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。

试设计一个程序求出出列顺序。

基本要求:

利用单向循环链表存储结构模拟此过程,按照出列的顺序打印出各人的编号。

实现提示:

程序运行后首先要求用户指定初始报数上限值,然后读取各人的密码(小于30)。

选作内容:

在顺序存储结构上实现上述问题的操作。

Input

输入包括两行,第一行包括报数上限值m和人数n,第二行为n个人的密码,所有数据之间由空格分隔。

Output

输出一行,共n个整数,表示各编号人的出列顺序。

各数之间由空格分隔。

SampleInput

207

3172484

SampleOutput

6147235

第六次:

StackQueue-实验2栈和队列

熟悉栈和队列的基本特性,掌握栈和队列基本运算的实现过程。

4+4学时

设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出,汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入,当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用,当便道上汽车要离开时,排在它前面的汽车要先开走让路,然后再依次排到队尾,并且在便道上停车不收费。

试为停车场编制按上述要求进行管理的模拟程序。

基本要求:

以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列管理,每一组输入数据包括三个数据项:

汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时间,对每一组输入数据进行操作后的输出数据为:

若是车辆到达,则输出汽车在停车场内或便道上的停车位置;

若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便递上停留的时间不收费),栈以顺序结构实现,队列以链表结构实现。

需另设一栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。

输入数据按到达或离去的时刻有序。

栈中每个元素表示一辆汽车,包含有两个数据项:

汽车牌照号码和进入停车场的时间。

(1)两个栈共享空间,思考应开辟数组的空间是多少?

(2)汽车可有不同种类,则它们的占地面积不同,收费标准也不同,如1辆客车和1.5辆小汽车的占地面积相同,1辆十轮卡车占地面积相当于3辆小汽车的占地面积。

(3)停放在便道上的汽车也收费,收费标准比停放在停车场的车低,请思考如何修改结构以满足这神要求。

输入第一行,包括两个数据,第一个整数为停车场最多可停放车辆数,第二个浮点数表示单位时间的停车费用。

接下来有多行数据,每行有三个整数,第一个为0或1,0表示进入车场,1表示离开车场;

第二个整数为车号;

第三个整数为进入或离开的时间。

当一行中三个数均为0时表示输入结束,所有数据之间由空格分隔。

输出为三部分,第一部分为按离开停车场顺序打印出的各车费用,每车一行,包括车号和费用(保留小数点后两位)。

第二部分占一行为当前停车场中的所有车辆,从北到南顺序输出各车车号。

第三部分占一行为当前便道上的所有车辆,从前向后顺序输出各车车号。

各车号之间由一个空格分隔。

21.5

015

0210

1115

0320

0425

0530

0635

1240

0745

1650

000

115.00

245.00

34

75

第七次:

btree-二叉树

6.41编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值。

6.42编写递归算法,计算二叉树中叶子结点的数目。

6.43编写递归算法,将二叉树中所有节点的左、右子树相互交换。

第八次:

BST-二叉排序树

9-1一棵以二叉链表存储的二叉排序树,并且可能存在值相同的结点。

设计一个算法,按升序打印出树中所有结点,但相同值的结点只打印一次。

9-2一棵以二叉链表存储的二叉排序树,并且可能存在值相同的结点。

设计一个算法,统计树中不同结点的个数。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 专升本

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

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