网站大量收购独家精品文档,联系QQ:2885784924

栈与队列实验报告.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
栈与队列实验报告

栈与队列 一,问题的提出 在这次的实验当中,我选的题目是用队列的知识解决停车场问题。停车场问题的具体描述是:假设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由南向北排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车可以开入;当停车场的某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待这辆车开出大门之后,其他车再按原来的次序进入车场,每辆停放在车场的车在它离开停车场的时候必须按它停留的时间长短交纳费用。 二,需求分析 总体来说这个程序主要包括三个部分:车辆到达,车辆离开,列表显示。 1,在这个程序当中,要完成这个任务:从键盘上输入车的车编号和而且车的编号是两位数然后通过程序可以得出一个具体的结果,这就需要创建一个栈,用大写A表示,然后再选择是进站还是出站,这就又需要创建一个栈,用大写B表示,这就完成了这个任务的前一半.剩下的就对这个栈的操作了.这个值得注意的问题是注意输入完车的编号的时候,应该通过程序先检查停车场内是否已经满了 ,还有就是停车场内的车辆如果要是出站的话,应该再为便道上的车辆创建一个栈。还有就是车如果要出站的话,离开停车场的时候必须按照它在停车场停留的时间交纳相应的费用,这个相对来说比较简单。 2,演示程序以用户和计算机的对话方式进行的,即在计算机终端显示”提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令,相应的输入数据和显示结果显示在其后. 3,其中比较重要的操作就是需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻 3,程序执行的命令包括: .编写栈的初始化、进栈和出栈算法。 .编写队列的初始化、进队和出队算法。 .编写处理车辆到达和车辆离开情况的函数。 .编写一个主函数,将上面函数连在一起,构成一个完整的程序。主函数中输入车辆的编号,到达和离开时间。 5)将实验源程序调试并运行,写出输入、输出结果。 4,一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现 5,车辆到达,车辆离开及其列表查询程序的分析 在车辆要进入停车场时,首先要判断停车场内车位是否已满,if(Enter-topMAX),说明车位还没有满,此时车辆进入停车场。否则重新申请空间,车辆进入便道。 在车辆要离开停车场的时候,首先判断停车场里是否有车。 if(Enter-top0)满足则说明有车,此时选择要离开车辆的车位。根据输入的车位,如果Enter-toproom则车辆离开,否则重新输入。当车辆离开后,若便道理有车,即W-head!=W-rear和Enter-topMAX同时满足,则便道理的车依次进入停车场,若便道里没有车,则返回主程序在列表查询中,首先选择是查询停车场的信息,还是查询便道理车辆的信息,若是查询停车场里的信息,则调用子程序List1(SeqStackCar *S)通过子程序List1(SeqStackCar *S)实现停车场内部的信息显示。再次子程序中,先判断停车场内的车辆是否为空,不空则输出车位及车牌号,否则输出车场里没有车。若查询便道理的车辆信息,则需要调用子程序List2(LinkQueueCar *W),其程序思想与子程序List1(SeqStackCar *S)类似,如果W-head!=W-rear,说明有车辆等待,输出信息,否则说明变到里面没有车辆等待。 三,概要设计 为了实现上述程序的功能,应以创建一个栈用来管理进入和出去的汽车,为此,需要两个抽象数据类型。在写程序之前我们要先熟悉一下队列的定义及其他方面的内容 一,预备知识 1.队列的学习要点 熟练掌握在两种存储结构上实现队列的基本运算,特别注意队满和队空的条件以及如何描述;掌握队列的特点、操作原则;熟练掌握循环队列和链队列的基本操作;懂得在什么情况下会应用到队列。 2. 队列的概念和操作原则 队列是限定只能在表的一端进行插入,另一端进行删除的线性表。通过定义我们要注意以几点:队列还是线性表,不过在操作中不能随心所欲,只能做限定的某些动作;队列的操作原则是先进先出(FIFO); 入队操作只能从称为队尾的一端进行;出队操作

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档