行业资讯

公司动态 行业资讯

c++ 数据结构设计 停车场问题

  设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口停放(最先到达的第一辆车放在停车场最里面)。如果停车场已经放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进入停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制程序模拟该停车场的管理。

  (1) 输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应缴纳的费用和它在停车场内停留的时间。

  (2) 汽车模拟输入格式为:(到达/离去,汽车牌照号码,到达/l离去的时刻)

  停车场只有一个大门,因此可以用栈来模拟,而当栈满后,继续来到的车辆只能停在便道上,可知这可以用一个队列来模拟,先排队的车辆先离开便道进入停车场。由于排在停车场内的车辆可以离开停车场,并且要求在依原来的次序进入停车场,因此在一个栈和一个队列的基础上,还需要有一个地方(车辆规避所)保存为了让路离开停车场的车辆,很显然要用栈来模拟,因此要用到两个栈和一个队列。

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  3 第i(i=n)辆车要走的时候,所有=i的车要交费,出队列时要交费。

  建议,写一个类,包含类的成员变量:队列(长度n),停车时间,单位小时费用,另外一个队列,长一些(4n个长吧)模拟大街。