欢迎来到天天文库
浏览记录
ID:10940072
大小:80.00 KB
页数:8页
时间:2018-07-09
《数据结构停车场问题实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、班级:计算机11-2学号:40姓名:朱报龙成绩:_________实验六栈和队列的应用一、实验目的1掌握栈的数据类型描述及栈的特点;2掌握栈的顺序存储结构的特点及算法描述;3掌握队列的数据类型描述及链式存储结构的特点和算法描述。二、实验内容停车场管理。设有一个可以停放n辆汽车的狭长停车场(先进后出),它只有一个大门可以供车辆进出。车辆按到达停车场时间的先后依次从停车场最里面向大门口处停放(最先到达的第一辆车停放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车离开,则排在便道上的第一辆车就可以进入停车场
2、。停车场内如有某辆车要离开,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车再按原来的次序进停车场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车没进停车场就要离开,允许其离开,不收停车费,并且仍然保持在便道上的车辆次序。试编程模拟停车场管理。二、设计与编码#includeusingnamespacestd;constintMax=2;//车库最大容量constdoubleprice=30;//每小时的费用classcar//车的信息类{public:doubletime;/
3、/计费时间intnumber;//车牌号car*next;//存放car类型元素的数组初始地址};classcarstack//栈(停车场)的类{friendclassparkingmanagement;//parkingmanagement能访问carstack类中所有成员public:carstack();//构造函数,栈的初始化intempty();//判断栈是否为空intfull();//判断栈是否为满car*s;//存放car类型栈元素的数组初始地址inttop;//栈顶指针};classcarqueue//队列(便道)的类{friendclas
4、sparkingmanagement;//parkingmanagement能访问carstack类中所有成员public:carqueue();//构造函数,队列的初始化intfull();//判断队列是否为满car*front,*rear;//存放car类型队列元素的数组初始地址};classparkingmanagement{public:intpushstack(carstack&cs,intcnum,doublectime);//入栈,cs栈内进行调整,返回栈内位置voidpopstack(carstack&cs,intcnum);//出栈,cs
5、栈内进行调整,intpushqueue(carqueue&cq,intcnum,doublectime);//入队,队内进行调整,返回队内位置intpopqueue(carqueue&cq);//出队,队内进行调整,返回汽车车牌号voidarrival(carstack&cs,carqueue&cq,intcnum,doublectime);//车辆到达,//根据输入的车牌号、到达时间,变更函数参数;并cout车位信息voidleave(carstack&cs,carqueue&cq,intcnum,doublectime);//车辆离开,voiddele
6、tequeue(carqueue&cq,inti);//删除cq过道中第i辆车intpopstacknumber;//专门存放出栈的时候返回的车牌号doublepopstacktime;//专门存放出栈的时候返回的时刻};carstack::carstack()//构造函数,栈的初始化{top=-1;s=newcar[Max];//创建car类型栈元素的数组if(s==NULL){cout<<"栈空间分配不成功!"<7、::carqueue()//构造函数,队列的初始化{rear=front=NULL;}intparkingmanagement::pushstack(carstack&cs,intcnum,doublectime)//入栈,cs栈内进行调整,返回栈内位置{if(cs.top==Max-1)//Max从开始,top从开始{cout<<"停车场已满!"<8、.time=ctime;//将ctime赋给栈顶位置的车的入栈时间
7、::carqueue()//构造函数,队列的初始化{rear=front=NULL;}intparkingmanagement::pushstack(carstack&cs,intcnum,doublectime)//入栈,cs栈内进行调整,返回栈内位置{if(cs.top==Max-1)//Max从开始,top从开始{cout<<"停车场已满!"<8、.time=ctime;//将ctime赋给栈顶位置的车的入栈时间
8、.time=ctime;//将ctime赋给栈顶位置的车的入栈时间
此文档下载收益归作者所有