数据结构课程设计报告学生姓名:孔令周指导老师:陈占龙班级: 116102 学生学号: 021 实习题目一1
需求规格说明书设停车场是一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端) ,若车场内已停满 n 辆汽车, 则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用
试为停车场编制按上述要求进行管理的模拟程序
总体分析与设计【设计思想】在内存中实现,无需外存的流处理过程
主要的算法思想是栈和队列的使用
以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理
每一组输入数据包括三个数据项:汽车“到达”或“离去”信息,汽车牌照号以及到达或离去的时刻
对每一组输入的数据进行操作后的输出信息为:若是车辆到达, 则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)
栈以顺序结构实现,队列以链表结构实现
【设计表示】输入其他【详细设计表示】主函数开始时要求用户输入停车场的初始大小,然后对进入的车辆进行管理,如果是进入,调用添加函数, 此函数中定义的规则是如果停车场如果没有满就加到停车场栈中,如果停车场已经满了,就添加到走道队列中
处理完添加函数后while循环调用次过程
同理,如果是车辆要出去,就调用删除函数, 如果删除后走道上有车在等待车位就将走道上的车辆根据先进先出的规则压到栈中
处理完删除函数之后也while循环调用次过程
只有当用户输入结束