下载此文档

数据结构经典案例.doc


文档分类:IT计算机 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
1、停车场问题停车场管理员得任务就就是帮助车主把车停放在停车场中,或者就是帮助车主将车开出乘车场。然后停车场中能够停放得车辆数目很多,这就使得让莫辆车开出停车场变得复杂。比如:要开走一辆车,则管理员需要把她前面得车全部暂时清除,然后等这辆车开出后再将这些车重新放入停车场。当然了,这个时候腾出了一个空位置,此位置由后面得车占据。任务:编程模拟这样得情况,这里假设停车场最多可停放5辆车。data、txt记录了某一时间段内,该停车场车辆得到来与离开记录,刚开始,停车场就是空得。其中大写字母AP就是车辆得代号,arrives到来,departs离开。程序需要从data、txt中读取这些信息,并且用这些数据来模拟停车场得车辆调度情况。data、txt内容如下:AarrivesAdepartsBarrivesCarrivesDarrivesCdepartsEarrivesFarrivesGarrivesBdepartsHarrivesDdepartsEdepartsIarrivesIdepartsJarrivesFdepartsKarrivesLarrivesMarrivesHdepartsNarrivesJdepartsKdepartsOarrivesParrivesPdepartsOdepartsLdeparts实现代码如下:模拟停车场问题、cpp(没有再继续分、h文件,混为一体了,主要、h文件过于简单)[cpp]viewplaincopyprint?#ifndefCAR_H#defineCAR_H#include<iostream>#include<string>usingnamespacestd;classcar{public:car(string,int);stringgetlicense;intgetmovedtimes;~car;voidmove;private:stringlicense;//车得通行证intmovedtimes;//被移动得次数};#endifcar::car(stringlicense,intmovedtimes):license(license),movedtimes(0){}stringcar::getlicense{returnlicense;}intcar::getmovedtimes{returnmovedtimes;}voidcar::move{movedtimes++;}car::~car{}#include<fstream>#include<stack>intmain{stringin_"data、txt";//数据文件了,包含了停车场内得车辆进出记录ifstreaminf(in_);//voidopen(constchar*mode,ess);另外,fstream还有与open一样得构造函数,对于上例,在定义得时侯就可以打开文件了://fstreamfile1("c://config、sys");if(!inf){cerr<<"文件打开失败!"<<in_<<endl;returnEXIT_FAILURE;}stack<car*>parking_lot,tempstack;//定义两个栈,一个模拟停车场,另外一个用来暂时存放从停车场哪里暂时清除得车,当然最后还就是得返回给停车场car*pcar;stringlicense_plate,action;//分别记录从数据文件中读取得通行证跟行为(到达?离开?)//按行读取数据文件while(!inf、eof){inf>>license_plate>>action;if(action=="arrives")//到达{if(parking_lot、size<5)//栈不满得话,继续入栈{pcar=newcar(license_plate,0);//这个就不用多罗嗦parking_lot、push(pcar);}elsecout<<"抱歉"<<license_plate<<",停车场已满!"<<endl;}elseif(action=="departs")//如果就是出发{//首先得给出判断,此时栈就是否为空?而且出发得这辆车得license_plate就是否位于栈顶while((!parking_lot、empty)&&(parking_lot、top>getlicense!=license_plate))//while循环{tempstack、push(parking_lot、top);parking_lot、top>move;//增加移动次数parking_lot、pop;//deleteparking_lot、top;此处还不能销毁结点,只就是一个短暂得转移罢了}if(parking_lot、top>getlicense==license_

数据结构经典案例 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人h377683120
  • 文件大小50 KB
  • 时间2020-07-10