- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
停车场管理系统实验报告汇总
停车场管理系统实验报告汇总
PAGE/NUMPAGES
停车场管理系统实验报告汇总
华北水利水电学院数据结构实验报告
2011~2012学年第二学期2011级计算机专业
班级:****学号:*****姓名:****-
实验二栈和队列及其应用
一、实验目的:
1.掌握栈的特点(先进后出FILO)及基本操作,如入栈、出栈等,栈的次序储藏结构和链式储藏结构,以便在实责问题背景下灵便应用。
2.掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,队列次序储藏结构、链式储藏结构和循环队列的实现,以便在实责问题背景下灵便运用。
二、实验内容:
1.链栈的建立、入栈、出栈操作。
2.环形队列的建立、入队、出队操作。
3.停车场管理。设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后次序,依次由北向南排列(大门在最南端,最先到达的第一辆
车停放在车场的最北端),若车场内已停满n辆汽车,则今后的汽车只幸亏门外的便道上等待,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要走开时,在它此后开入的车辆
必定先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它走开停车场时必定按它停留的时间长短缴纳花销。试为停车场编制按上述要求进行管理的模拟程序。
实现提示:以栈模拟停车场,以队列模拟车场外的便道,依照从终端读入的输入数据序列进行模
拟管理。每一组输入数据包括三个数据项:汽车“到达”或“走开”信息、汽车牌照号码及到达或走开的时辰,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上
的停车地址;若是车走开;则输出汽车在停车场内停留的时间和应缴纳的花销(在便道上停留的时间不收费)。栈以次序结构实现,队列以链表(带头结点)实现。
需另设一个栈,临时停放为给要走开的汽车让路而从停车场退出来的汽车,也用次序储藏结构实现。输入数据按到达或走开的时辰有序。栈中每个元素表示一辆汽车,包括两个数据项:汽车的牌照号码和进入停车场的时辰。
设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表’
示输入结束。
三、实验要求:
1.C/C++完成算法设计和程序设计并上机调试经过。
2.撰写实验报告,供应实验结果和数据。
3.写出算法设计小结和心得。
四、程序源代码:
1.#includeiostream.h
#includestdlib.h
typedefstructstnode
{
intdata;
stnode*next;
第1页共15页
}LinkStack;
创办一个栈头结点,无头结
voidInitStack(LinkStack*ls)
{
ls=NULL;
}
进栈,相当于头插法
voidPush(LinkStack*ls,intx)
{
LinkStack*p;
p=(LinkStack*)malloc(sizeof(LinkStack));
p-data=x;
p-next=NULL;
p-next=ls;
ls=p;
}
出栈
voidPop(LinkStack*ls)
{
if(ls==NULL)
return;
LinkStack*p;
intx;
p=ls;
while(p)
{
x=p-data;
ls=p-next;
coutx;
free(p);
p=ls;
}
cout出栈成功!!endl;
}
创办栈
voidCreatStack(LinkStack*ls)
{
InitStack(ls);
inti=1,num;
cout以000表示输入结束!!endl;
while(1)
{
cout请输入第i个元素:;
cinnum;
if(num==000)
第2页共15页
break;
Push(ls,num);
i++;
}
cout进栈成功!!endl;
}
voidmain( )
{
LinkStack*ls,*p;
CreatStack(ls);
Pop(ls);
}
2.#includeiostream.h
#defineQueueSize100
typedefstructsqqueue
{
intdata[QueueSize];
intfront,rear;
}SqQueue;
初始化队列
voidInitQueue(SqQueuequ)
{
qu.rear=qu.fr
原创力文档


文档评论(0)