实验报告实习二栈和队列应用

实验报告实习二栈和队列应用

ID:24159151

大小:48.00 KB

页数:4页

时间:2018-11-12

实验报告实习二栈和队列应用_第1页
实验报告实习二栈和队列应用_第2页
实验报告实习二栈和队列应用_第3页
实验报告实习二栈和队列应用_第4页
资源描述:

《实验报告实习二栈和队列应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实习二栈和队列应用仅仅认识到栈和队列是两种特殊的线性表是远远不够的,本次实习的目的在于使读者深入了解栈和队列的特征,以便在实际问题背景下灵活运用它们,同时还将巩固这两种结构的构造方法。停车场管理[问题描述]设停车场内只有一个的停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在午场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车耍离开时,在它之后幵入的车

2、辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。[测试数据]设n=2,输入数据为:(‘A、1,5),(‘A’,2,10),(‘D’,1,15),(‘A',3,20),(‘A’,4,25),(‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E',0,0)。其中,‘A’表示到达;‘D’表示离去,‘E’表示输入结朿。[基本要求]以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输

3、入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的吋间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表实现。[实现提示]需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的吋刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。程

4、序:^include^include^include〈string.h>^defineERROR0ttdefineOK1ftdefineOVERFLOW-1#dcfineMAXI10ttdefineMAX220typedefstructMessage{charcard[10];charstart[10];charend[10];intnum;}Message;typedefstructStack{structMessage氺top;structMessage*base;}Stack;Stacks

5、tackl,stack2;typedefstructQuence{intdata;structQuence相ext;}Quence;typedefstructLinkquence{structQuence*front;structQucncc氺rear;}Linkquence;Linkquencequencel;intInitstack(StackS){S.base二(Message*)malloc(sizcof(Message));if(!S.base)returnERROR;S.top=S.base;returnOK;}Stac

6、kPush(StackS,inti){Message氺p;p=(Message*)malloc(sizeof(Message));p->num=i;gctchar0;printf(〃这是第%d辆车",i);printf("请输入该车的车牌号:");gets(p->card);printf("请输入该车到达吋间:");gets(p->start);printf("请输入该车离幵时间<);gets(p->end);S.top++;returnS;}intPop(StackS){if(S.top=S.base)returnERROR;pr

7、intf("依次输出出栈汽车的车牌号,到达时间以及离开时间:");Stack*q;q->base=S.base;while(q->basebase++;inttime,money;puts(q->base->end);puts(q->base->start);time=q->base->end-q-〉base-〉start;money=time*l;printf(〃该车停留T%d分钟,应缴费用为%d元11",time,money);free(q);returnOK;}voidTnitquence(Linkq

8、uenceQ){Q.rear^Q.front=(Quence*)malloc(sizeof(Quence));if(!Q.front)exit(OVERFLOW);Q.front->next=NULL;}intEntcrqucncc(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。