问题描述
设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,
一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,
待其开出停车场后,这些车辆再依原来的次序进场。
每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。
编制程序模拟该停车场的管理。
要求:
若是到达的车辆,输出其在停车场中或者便道中的位置;
若是离去的车辆,则额输出其在停车场中停留的时间和应缴纳的费用。
问题分析
1.停车场中某车的离开必须在其前面的车已经离开之后才行,满足“先进后出”的特性,因此采用栈来模拟停车场。
2.对于指定停车场,其车位相对固定,因此采用顺序栈。
3.从停车场出来为后面的车让路的车也是先出的后进,因此也用栈来模拟。
4.从停车场出来的车数最大不超过停车场的车,因此采用长度等于车场车辆数的顺序栈。
5.便道上的车按照先到先开进车场的原则,满足“先进先出”的特性,因此可以用队列来模拟便道。
6.便道上的车辆数目不固定,因此采用链队列。
7.每组数据应