停车场管理问题精要.pdf

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

华北水利水电学院 数据结构 实验报告 2012~2013 学年 第 一 学期 2010 级 计算机科学与技术 专业 班级: 2010135 学号: 201013517 姓名: 孙浩 实验二 栈和队列及其应用 一、 实验题目: 栈和队列及其应用——停车场管理 二、 实验内容: 设停车场是一个可停放 n 辆车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到 达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北段),若 停车厂内已停满 n 辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一 辆车迹可开入;停车场内某辆车要离开时,在它之后进入的车连必须先退出车厂为它让路,待该车辆开出 大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车时必须按它停留的时间长短缴 纳费用。编写按上述要求进行管理的模拟程序。 可以将停车场定义成一个顺序栈 s0,便道定义成一个链队列 q,而停车场中的某辆车要离开,则在它后 面进停车场的车必须让道,让其离开,所以必须有一个临时的顺序栈 s1,存放让道的车辆。 当有车辆进停车场时,若栈 s0 不满,则直接进入栈 s0;若栈 s0 满,则进入便道(链队列 q )。若有 s0 中车辆x 离开时,先让在 x 后面进栈的车从 s0 退栈并进入栈 s1 中,让x 离开并收取停车费(在便道上 停留的时间不收费),然后再把 s1 中所有元素退栈并重新进入s0 栈,最后,将链队列 q 中的队头元素出队 并进栈到 s0 中。 三、 程序源代码: #includeiostream.h #includestring.h #includestdlib.h #define StackSize 3 //车场的容量 //顺序栈,停车场使用 typedef struct Car { char Carcode[10]; double Intime; }Car,*PCar; typedef struct Stack { PCar base; PCar top; int stacksize; }SqStack; //链式队列,便道使用 typedef struct QNode { char Carcode[10]; 第 1 页 共 6 页 QNode* next; }*QueuePtr; // struct LinkQNode { QueuePtr front;//队头指针 QueuePtr rear;//队尾指针 }; //当栈满时,后来车辆入便道 void EnQNode(LinkQNode* Q) { QueuePtr p=new QNode; cout\t请输入牌照:; cinp-Carcode; p-next=NULL; Q-rear-next =p; Q-rear=p; } //将便道上的车开进车库 Stack MoveQNodeTOStack(Stack s0,char Carcode[]) { double time; strcpy(s0.top-Carcode,Carcode); cout\t输入便道车进入停车场的时间:; cintime; s0.top-Intime=time; s0.top++; return s0; } //车场满进入便道,否则进入车场 void EnStack(SqStack s0,LinkQNode* Q) { char Carcode[6]; double time; if(s0.top

文档评论(0)

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

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

1亿VIP精品文档

相关文档