栈与队列应用举例.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设有一个可以停放 n 辆汽车的狭长停车场 ,它只有一个 大门可以供车辆进出。车辆按到达停车场时间的先后次序从 停车场最里面向门口处停放最先到达的第一辆车停在停车 场的最里面 ) 。如果停车场已放满 n 辆车, 则后来的车辆只能 在停车场大门外的便道上等待, 一旦停车场内有车开走 ,则排 在便道上的第一辆车就可进入停车场。停车场内如有某辆车 要开走 ,在它之后进入停车场的车辆都必须先退出停车场为 它让路 ,待其开出停车场后 ,这些车辆再依原来的次序进入。 每辆车在离开停车场时 ,根据它在停车场内停留时间的长短 交费。如果停在便道上的车辆未进停车场就要离去,允许其 离去时不收停车费 ,并且仍然保持在便道上等待的车辆的次 序。 现在编制一个程序来模拟停车场的管理。 首先确定模拟程序中需要的数据结构及其操作。 由于停车场只有一个大门 ,因此可用一个栈来模拟; 根据 便道停车的特点, 先排队的车辆先离开便道进入停车场 ,可以 用一个队列来模拟;又因为排在停车场中间的车辆可以提前 离开,因此还需要有一个地方 (车辆规避所 )保存为了让路离 开停车场的车辆 ,很显然这也应该用一个栈来模拟。 所以在程 序中设置了两个顺序栈 s1 和 s2 分别表示停车场和规避所; 设置了一个链队列 q 表示便道。它们的数据类型定义在下面 的源程序中, 为了操作方便, 链队列表头结点中的 num 域中 精选文库 存放便道上的车辆数量。 程序执行时,当输入数据表示有车辆到达时,判断栈 s1 是否满, 若未满就将新数据进栈 s1;若栈已满 ,就将数据入队 列 q ,表示车辆在便道上等待进入停车场。该操作过程由函 数 Arrive 完成。当输入数据表示有车辆要离去时 ,就在栈 s1 中寻找此车牌号的车辆 ,如寻找到就让其离开停车场 ,并根据 停车时间计费,同时将队列 q 的队头元素进栈 s1;如没有找 到,就到队列 q 中去寻找此车牌号的车辆。 如在队列 q 中找到 就允许其离开队列 ,并不收费; 如找不到就显示出错信息。 当 离开停车场的车辆位于栈 s1 的中间时 ,必须先将此位置到栈 顶之间的所有数据倒到栈 s2 中去 ,然后安排车辆出栈 s1,最后 将栈 s2 中的数据倒回到栈 s1 中来。该操作过程由函数 Delive 完成。显然,以上两个主要操作需要利用栈和队列的两个基 本操作入栈(队列)和出栈(队列)来实现。源程序中的函 数 Display 则可以随时显示停车场的状况。 #include stdio.h #define

文档评论(0)

fkh4608 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档