当前位置:首页|资讯

C/C++《数据结构》课程设计题目及要求(48题)

作者:高校程序发布时间:2024-10-14

C/C++《数据结构》课程设计题目及要求(48题)

《数据结构》课程设计题目

一人一题,不得重复

题目1:单电梯模拟系统 1
题目2:一元多项式的加法、减法、乘法的实现 1
题目3:送水管理系统 2
题目4:哈夫曼编/译码器 2
题目5:校园导游咨询 3
题目6:运动会分数统计 3
题目7:走迷宫游戏升级版 4
题目8:农夫过河问题的求解 4
题目9:广州地铁乘车路线规划系统 5
题目10:宿舍管理查询软件 5
题目11:航班信息的查询与检索 5
题目12:高校社团管理系统 6
题目13:散列表的设计与实现 6
题目14:商店存货管理系统 6
题目15:广州地铁线网票价查询系统 7
题目16:简单的职工管理系统 7
题目17:基于搭乘体验的公交线路推荐系统 7
题目18:家族关系查询系统 8
题目19:银行活期储蓄账目管理系统 8
题目20:安排教学计划 9
题目21:简单目录管理系统的设计与实现 9
题目22:后疫情时代校园行动轨迹查询系统 9
题目23:药店的药品销售统计系统  10
题目24:仓库管理系统 10
题目25:考试报名系统 10
题目26:酒店客房管理系统 11
题目27:班级创新学分管理系统 11
题目28:简单的客户管理系统 12
题目29:垃圾分类查询系统 12
题目30:关键路径系统 12
以下题目要求选择2题完成 13
题目31:集合运算 13
题目32:马的遍历问题 13
题目33:排序算法综合(33与34不能同时选) 13
题目34:排序算法动态演示(33与34不能同时选) 14
题目35:猴子选大王(35、 36、37、38不能同时选) 14
题目36:敢死队问题(35、 36、37、38不能同时选) 14
题目37:纸牌游戏(35、 36、37、38不能同时选) 14
题目38:约瑟夫环 (35、 36、37、38不能同时选) 15
题目39:设计哈希表 15
题目40:图的遍历 15
题目41:构造可以使n个城市连接的最小生成树 16
题目42:求最短路径 16
题目43:走迷宫游戏基础版本 16
题目44: 学生搭配问题 16
题目45:停车场管理问题 17
题目46:表达式计算 17
题目47:使用栈为栈中的元素排序 18
题目48:线索二叉树的应用 18

源码联系UP主 -> https://space.bilibili.com/329101171

题目1:单电梯模拟系统
学校八层教学楼的单电梯系统基本情况如下:
(1)该楼有一个自动电梯,能在每层停留。八个楼层由下至上依次称为地下层、第一层、第二层、第三层和第四层,…,第七层。其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来到该层候命。
(2)电梯一共有七个状态,即正在开门(Opening)、已开门(Opened)、正在关门(Closing)、已关门(Closed)、等待(Waiting)、移动(Moving)、减速(Decelerate)。乘客可随机地进出于任何层。对每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。
(3)模拟时钟从0开始,时间单位为0.1秒。人和电梯的各种动作均要耗费一定的时间单位(简记为t),比如:
有人进出时,电梯每隔50t测试一次,若无人进出,则关门;
关门和开门各需要25t;
每个人进出电梯均需要30t;
如果电梯在某层静止时间超过300t,则回到1层候命。
请设计数据结构和算法,要求输出:按时序显示系统状态的变化过程,即发生的全部人和电梯的动作序列。

题目2:一元多项式的加法、减法、乘法的实现
设有一元多项式 和 ,其中:
请实现求 、 和
要求:
(1)分别采用顺序和动态存储结构实现;
(2)结果 中无重复阶项和无零系数项;
(3)输出结果的升幂和降幂两种排列情况。

题目3:送水管理系统
设计多个结构体,保存桶装水入库、会员要桶装水、安排送水及其相关的资金等信息管理,设计算法实现批量对临近会员送水的安排。
功能要求:
(1)水站点的入库水、空桶回收和送出、接收会员要水信息。包括新增、修改、删除、查询。
(2)用户管理:管理员、经理、送水工人、会员。实现新增、修改、删除、查询。
(3)根据会员要水的信息,设计一个算法实现临近会员的集中送水。
(4)资金管理管理,会员押金、充值、扣款,与水厂的资金往来,员工的工资。
(5)分析所设计算法的时间复杂度、空间复杂度。
存储结构:由键盘输入用户信息、要水送水、充值扣款等数据,以文件方式保存,程序执行时先将文件读入内存,并使用顺序表或链表存放。

题目4:哈夫曼编/译码器
利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼编/译码系统。
功能要求:
(1)初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。
(2)编码(Encoding)。利用已建好的哈夫曼树(如不在内存,则从文件htmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。
(3)译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。
(4)打印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式(横向输出)显示在终端上。

题目5:校园导游系统
用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。
功能要求:
(1)查询各景点的相关信息;
(2)查询图中任意两个景点间的最短路径。 
(3)查询图中任意两个景点间的所有路径。 
(4)增加、删除、更新有关景点和道路的信息。
(5)分析所设计算法的时间复杂度、空间复杂度。
存储结构:由键盘输入景点、道路等对象数据,以文件方式保存,程序执行时先将文件读入内存,并使用顺序表或链表存放推荐线路信息。

题目6:运动会分数统计
参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)
功能要求:
(1) 可以输入各个项目的前三名或前五名的成绩;
(2) 能统计各学校总分;
(3) 可以按学校编号、学校总分、男女团体总分排序输出;
(4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。

题目7:走迷宫游戏升级版
程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。
设计要求:
(1)老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;
(2)正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;
(3)添加编辑迷宫功能,可修改当前迷宫,修改内容:墙变路、路变墙;
(4)找出走出迷宫的所有路径,以及最短路径。

题目8:农夫过河问题的求解
一个农夫带着一只狼、一只羊和一棵白菜,身处河的南岸。他要把这些东西全部运到北岸。他面前只有一条小船,船只能容下他和一件物品,另外只有农夫才能撑船。如果农夫在场,则狼不能吃羊,羊不能吃白菜,否则狼会吃羊,羊会 吃白菜,所以农夫不能留下羊和白菜自己离开,也不能留下狼和羊自己离开,而狼不吃白菜。
功能要求:
(1)用向量表示状态。
(2)设计一个通用算法,安全地实现农夫过河。
(3)解决类似问题,例如教士和野人过河。其中教士和野人数可以是变化的,分析算法如何修改实现动态变化。
(4)分析所设计算法的时间复杂度、空间复杂度。
存储结构:由图的邻接表实现状态存储以及状态转移,通过键盘输入动态数据执行指定的算法。

题目9:广州地铁乘车路线规划系统
通过调研,查清楚广州现有的地铁线路和站点情况,选择合适的存储结构,设计和实现一个广州地铁乘车路线规划系统。功能要求:输入始点和终点,能够给出规划路线及中间换乘信息等,具有换乘次数少或经过站点最少两种优先选择功能。要求系统维护时,能比较方便地进行线路或站点的增删。

题目10:宿舍管理查询软件
为宿舍管理人员编写一个宿舍管理查询软件。
功能要求:
(1) 录入:采用交互工作方式录入数据,建立数据文件;
(2) 查询:(用二分查找实现以下操作)按姓名查询、按学号查询 、按房号查询;
(3) 排序:按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种),输出排序结果;
(4) 删除:根据学号删除相关信息;
(5) 修改:根据学号修改相关信息。

题目11:航班信息的查询与检索
对飞机航班信息进行录入、排序和查找等操作,每个航班记录包括八项,分别是:航班号、起点站、终点站、起飞时间、到达时间、机型以及票价。
2.功能要求:
(1)录入:采用交互工作方式添加航班信息,建立数据文件;
(2)查询:可按航班的航班号、起点站、终点站、起飞时间以及到达时间等信息进行查询;
(3)排序:可按航班的航班号、票价进行排序;
(4)删除:根据航班号删除航班相关信息;
(5)修改:根据航班号修改航班相关信息。

题目12:高校社团管理系统
编写一个系统完成高校社团的管理,包括录入、查询、删除、修改、排序等操作。社团信息包括:社团名称、创建的时间、主要职责、主要负责人、社团成员等。
功能要求:
(1) 录入:采用交互式方式录入社团信息后存入文件,之后可导入;
(2) 查询:可以特定条件查询社团信息;
(3) 删除
(4) 修改:根据给出的条件查询出社团信息后进行相应的修改;
(5) 排序:根据社团的创建时间进行排序。

题目13:散列表的设计与实现
设计散列表实现电话号码查找系统,把数据保存在文件中,充分利用顺序表和链表完成以下功能:
(1)设每个记录有下列数据项:电话号码、用户名、地址;
(2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;
(3)采用一定的方法解决冲突;
(4)查找并显示给定电话号码的记录;
(5)查找并显示给定用户名的记录。
(6)设计不同的散列函数,比较冲突率;
(7)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。

题目14:商店存货管理系统
建立商店存货管理系统,要求每次出货时取进货时间最早且最接近保质期中止时间的货物。
功能要求:
(1)录入:采用交互工作方式添加5个种类的货物,并建立数据文件;
(2)查询、修改和删除功能
(3)排序;
(4)有兴趣的同学可以自己扩充系统功能。

题目15:广州地铁线网票价查询系统
广州地铁是按里程分段计价,起步4公里以内 2元;4至12公里范围内每递增4公里 加1元;12至24公里范围内每递增6公里 加1元;24公里以后,每递增8公里 加1元。试设计和实现一个广州地铁线网票价查询系统。功能要求:输入始点和终点,能够给出相应的票价,两站点间有多条路径的,以最短路径计费。相邻站点间距离信息是安装部署时输入,并要求系统维护时,能比较方便进行线路或站点的增删。

题目16:简单的职工管理系统
对单位的职工进行管理,包括插入、删除、查找、排序等功能。职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。
功能要求:
(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。
(2)删除一名职工:从职工管理文件中删除一名职工对象。
(3)查询:从职工管理文件中查询符合某些条件的职工。
(4)修改:检索某个职工对象,对其某些属性进行修改。
(5)排序:按某种需要对职工对象文件进行排序。

题目17:通讯录的制作
用双向链表作数据结构,编写一个通讯录管理系统。
功能要求:
(1)输入信息——enter();
(2) 显示信息———display( );
(3)查找以姓名作为关键字 ———search( );
(4)删除信息———delete( );
(5) 存盘———save ( );
(6) 装入———load( ) ;

题目18:家族关系查询系统
设计要求:
(1) 建立家族关系并能存储到文件中。
(2) 实现家族成员的添加。
(3) 可以查询家族成员的双亲、祖先、兄弟、孩子和后代等信,查找家族成员的祖先路径、确定成员是家族中的第几代。

题目19:银行活期储蓄账目管理系统
设计要求:
(1) 开户
(2) 存款
(3) 取款
(4) 销户
(5) 查询:按指定条件查询客户信息(比如给定日期范围查询某客户的交易明细等)

题目20:安排教学计划
设计要求:
(1) 通过键盘对输入课程及课程的先行、后继关系(如果存在回路关系时应提示错误)。
(2) 根据输入课程信息及其先行、后继关系,计算安排教学计划的序列。
(3) 输出教学计划的安排顺序。

题目21:简单目录管理系统的设计与实现
设计要求:
利用树型结构设计并实现一个简单的目录管理系统,该系统可以对所有目录进行管理,如目录的新建、删除、查询、目录名称修改、按某种顺序输出所有目录(树的遍历操作)、以树型结构输出所有目录等功能。

题目22:校园入口、各教学楼、实验楼、图书馆等均模拟实现“扫码登记”制度。设计算法,给出人员编号、查询日期后,查询该人员在校园内行动轨迹,并可以进一步查询密切接触者信息。
(1)登记点、人员管理:包括新增、修改、删除、查询。其中登记点指校园入口名、教学楼、图书馆等;人员指学生、教师、工作人员、外来人员等。
(2)扫码登记:输入登记点名称(如教学楼)、学号的方式进行模拟。
(3)人员轨迹查询:给出人员编号、查询日期后,查询该人员在校园内行动轨迹。
(4)测试:设计模拟数据,并进行测试。
(5)分析所设计算法的时间复杂度、空间复杂度。
存储结构:由键盘输入对象数据,以文件方式保存,程序执行时先将文件读入内存,并使用顺序表或链表存放轨迹信息。

题目23:药店的药品销售统计系统
实现医药公司定期对销售各药品的记录进行统计,可按药品的编号、单价、销售量或销售额做出排名。 
功能要求:
(1)载入:从数据文件中读出各药品的信息记录,存储在顺序表中。各药品的信息包括:药品编号、药名、药品单价、销出数量、销售额。药品编号共4位,采用字母和数字混合编号,如:A125,前一位为大写字母,后三位为数字;
(2)排序:按药品编号进行排序时,可采用基数排序法。对各药品的单价、销售量或销售额进行排序时,可采用多种排序方法,对单价的排序采用冒泡排序法,对销售量的排序采用快速排序法,对销售额的排序采用堆排序法。
(3)输出:将各种排序结果输出显示。

题目24:仓库管理系统
设计要求:
建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况,也可以增加或删除货物信息、实现货物的入库出库,要求能用文件保存仓库货品信息。

题目25:考试报名系统
对学生考试报名管理的简单模拟, 每条考生信息由准考证号、姓名、性别、年龄、报考类别等信息组成。
功能要求:
(1) 录入考生信息
(2) 查询考生信息
(3) 添加考生信息
(4) 修改考生信息
(5) 删除考生信息
(6) 输出考生信息
(7) 存盘。

题目26:酒店客房管理系统
设计一酒店客房管理系统,能完成客房的查询、排序,订房及退房功能。客房信息至少包括房号、房型、价格、状态等信息。
功能要求:
(1) 载入:客房信息存储在文件中,进入系统先导入客房信息,并存在单链表中;
(2) 查询:可根据房型、客房状态等查询客房信息;
(3) 排序:根据房型、房价等进行客房信息排序;
(4) 订房:修改客房状态,并将订房信息要写入文件中;
(5) 退房:退房后修改相关数据。

题目27:班级创新学分管理系统
创新学分管理系统主要完成学生创新学分的录入、修改、查询、排序等操作。创新学分的构成为:发明专利和著作权登记、发表论文和作品、参与创新创业基金项目、参加学科及科技竞赛、获得各类专业资格证书、参加学术活动、参加社会实践等(具体可参考文件:信息科学与技术学院课外创新实践学分认定范围及标准.doc)。
功能要求:
(1) 录入:根据学生学号或姓名,按照创新学分构成项目分别录入对应分值,录入的信息存入文件,之后可导入;
(2) 查询:按学号或姓名查询学生各项创新学分分值;
(3) 修改:修改指定学生的创新学分分值;
(4) 排序:按照创新学分总分或各项分数对全班学生进行排序。

题目28:简单的客户管理系统
对客户信息进行简单管理,包括插入、查找、删除、修改等功能。客户信息包括姓名、性别、年龄、工作单位、地址、电话等。
功能要求:
(1)插入:采用交互式方式录入客户信息,保存在文件中,之后可导入;
(2)删除:从客户信息管理文件中删除一名客户对象;
(3)查找:从客户管理文件中查询符合某些条件的客户信息;
(4)修改:检索某个客户,对其某些属性进行修改。

题目29:垃圾分类查询系统
对垃圾的类别及每个类别常见的垃圾信息进行简单管理,包括插入、查找、删除、修改等功能。垃圾信息包括垃圾名称、垃圾类别、垃圾描述等。
功能要求:
(1)插入:采用交互式方式录入垃圾信息,保存在文件中,之后可导入;
(2)删除:从垃圾信息管理文件中删除一个垃圾对象;
(3)查找:从垃圾信息管理文件中查询符合某些条件的垃圾信息;
(4)修改:检索某个垃圾对象,对其某些属性进行修改。

题目30:关键路径系统
创建并存储AOE网,然后基于该AOE网求解关键活动及关键路径。
功能要求:
(1)创建:创建并存储AOE网,保存在文件中,之后可导入;
(2)查询:事件V的最早开始时间;事件V的最迟开始时间;活动a的最早开始时间;活动a的最迟开始时间;
(3)求解并输出:关键活动、关键路径。

以下题目要求选择2题完成

题目31:集合运算
集合的元素可以是字母[a,b,…,z],也可以是整数[0,1,…,9]。集合输入的形式为一个以“回车符”为结束标志的字符串,允许出现重复字符或非法字符,程序应能自动滤去。输出的运算结果字符串中将不含重复字符或非法字符。
请设计数据结构和算法,编写程序实现两个集合A、B的交集、并集和差集。

题目32:马的遍历问题
在中国象棋棋盘上,对任一位置上放置的一个马,均能选择一个合适的路线,使得该棋子均能按照象棋的规则不重复地走过棋盘上的每一个位置。
要求:
(1)依次输出所走过的位置坐标;
(2)最好能画出棋盘的图形形式,并在其上动态地标注行走的过程;
(3)程序能方便的移植到其它规格的棋盘上。

题目33:排序算法综合(33与34不能同时选)
设计要求:利用随机函数产生N个随机整数(10000以上),对这些数进行多种方法进行排序。
(1)采用七种方法实现上述问题求解(提示,可采用的方法有直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结果保存在不同的文件中。
(2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。

题目34:排序算法动态演示(33与34不能同时选)
设计要求:使用直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序6种排序算法对随机产生的20个数进行排序,给出每种排序算法每趟排序的结果。

题目35:猴子选大王(35、 36、37、38不能同时选)
一堆猴子都有编号,编号是1,2,3 …m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
功能要求:
(1)输入数据:输入m,n m,n 为整数,n<m
(2)输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能

题目36:敢死队问题(35、 36、37、38不能同时选)
有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行任务。如果前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,此战士接着去执行任务。以此类推,直到任务完成为止。
排长是不愿意去的,假设排长为1号,请你设计一程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。

题目37:纸牌游戏(35、 36、37、38不能同时选)
编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;…再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向上的牌有哪些?

题目38:约瑟夫环 (35、 36、37、38不能同时选)
任务:编号是1,2,……n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。
要求:
(1)利用单循环链表作为存储结构模拟此过程;
(2)键盘输入总人数n及个人的密码、初始报数上限值m;
(3)建立一个输出函数,按照出列的顺序输出各个人的编号。

题目39:任意长的整数加法
设计一个程序实现两个任意长的整数的求和运算。
设计要求:
利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000。

题目40:图的遍历
设计要求:
(1)先任意创建一个图(点与边从键盘输入);
(2)分别采用邻接表和邻接矩阵两种存储结构存储;
(3)分别在两种存储结构上实现图的DFS,BFS的递归算法
(4)分别在两种存储结构上实现图的DFS的非递归算法

题目41:构造可以使n个城市连接的最小生成树
给定一个地区的n个城市间的距离网,用Prim算法和Kruskal算法建立最小生成树,并计算得到的最小生成树的代价。
设计要求:
(1)城市间的距离网采用邻接矩阵表示,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。
(2)输入:表示城市间距离网的邻接矩阵(要求至少6个城市,10条边)
(3)输出:最小生成树中包括的边及其权值,并显示得到的最小生成树的代价。

题目42:求最短路径
设计要求:使用图的邻接表表示法,求有向带权图中源点到其他各顶点的最短路径。

题目43:走迷宫游戏基础版本
设计要求:
(1)可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;
(2)至少使用两种数据结构完成。

题目44: 学生搭配问题
一班有m个女生,有n个男生(m不等于n),现要开一个舞会. 男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴. 请设计一系统模拟动态地显示出上述过程。
功能要求:
(1)输出每曲配对情况
(2)计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况.至少求出K的两个值.
提示:用队列来解决比较方便.

题目45:停车场管理问题
设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。
设计要求:
要求程序按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。

题目46:表达式计算
利用栈求表达式的值,先判断表达式是否正确,再计算。
功能要求:
(1) 输入带有()、[]、{}的加减乘除混合运算表达式;
(2) 先判断括号是否匹配,如果匹配错误,提示重新输入;
(3) 如果表达式正确,将中缀表达式利用栈转为后缀表达式,并完成计算。

题目47:使用栈为栈中的元素排序
用一个整数栈保存从键盘输入的一组整数,使用另一个临时栈对整数栈中整数进行升序排序,并输出排序结果。要求:最多只能使用一个临时栈存放临时数据,但不得将数据保存到别的数据结构中。示例如下:
Input : [34, 3, 31, 98, 92, 23]
Output : [3, 23, 31, 34, 92, 98]
Input : [3, 5, 1, 4, 2, 8]
Output : [1, 2, 3, 4, 5, 8]

题目48:线索二叉树的应用
要求实现线索二叉树的建立、插入、删除、查找中序序列中前驱和后继结点的功能。


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1