实验二:停车场管理(栈和队列应用)班级学号姓名一、实验目的1掌握队列和栈顺序存储结构和链式存储结构,以便在实际背景下灵活运用。2掌握栈和队列的特点,即先进后出与先进先出的原则。3掌握栈和队列的基本运算。二、实验内容1问题描述设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚,依次从停车场最里面向大门口处停放。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短来交费。如果停留在便道上的车未进入停车场就要离去,允许其离开,不收停车费,并且仍然保持在便道上等待的车辆次序。编制一个程序模拟该停车场的管理。2实现要求要求程序输出每辆车到达后的停车位置(停车场或便道),以及某辆车离开停车场时应该交纳的费用和它在停车场内停留的时间。3实现提示汽车的模拟输入信息格式可以为:(到达/离开,汽车牌照号码,到达/离开的时间)。用栈和队列来模拟停车场和便道。三、实验结果:头文件#defineMAXSIZE3#{ inthour;intmin;}Time;typedefstructcar{charnum[10];Timereach;Timeleave;}CarNode;typedefstructSNode{CarNode*data1[MAXSIZE+1];inttop;}SeqStackCar;typedefstructQNode{CarNode*data2;structQNode*next;}QueueNode;typedefstructLQNode{QueueNode*front;QueueNode*rear;}LinkQueueCar;voidInitStack(SeqStackCar*s);intInitQueue(LinkQueueCar*Q);voidDisplay(CarNode*p,intplace);intArrival(SeqStackCar*s,LinkQueueCar*LQ);voidLeave1(SeqStackCar*s1,SeqStackCar*s2,LinkQueueCar*LQ);voidLeave2(LinkQueueCar*LQ);voidList1(SeqStackCar*s);voidList2(LinkQueueCar*LQ);源文件#include""#include<iostream>usingnamespacestd;inti=0;voidInitStack(SeqStackCar*s){ inti;s->top=0;for(i=0;i<=MAXSIZE;i++)s->data1[s->top]=NULL;}intInitQueue(LinkQueueCar*Q){ Q->front=newQueueNode;if(Q->front!=NULL) { Q->front->next=NULL;Q->rear=Q->front;return1; }else return
数据结构 停车场管理报告 来自淘豆网m.daumloan.com转载请标明出处.