- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构实验报告1.
数学与计算机学院 数据结构 实验报告
年级 2010 学号 2010434119 姓名 赵玲璞 成绩
专业 计算机 实验地点 主楼401 指导教师 苗秀芬
实验项目 停车场问题 实验日期
一、实验步骤
1、实验问题分析
(1)、为了便于区分每辆汽车并了解每辆车当前所处的位置,需要记录汽车的牌照号码和汽车的当前状态,所以为汽车定义一个新的类型car,具体定义如下:
typedef struct{
char license_plate[20];//牌照号码
char state;//汽车状态,但是程序中用处不大
}car;
(2)、车站的进出符合栈的“先进后出”特点,所以用一个栈来描述停车位。又因为停车位有限并由固定编号,所以使用顺序栈方便,具体定义如下:
#define Max1 5
typedef struct{
car stop[Max1];//各汽车信息的存储空间
int top;//指示栈顶位置的静态指针,在这里指向车站最外面的车
}stopping;
(3)、便道符合队列的“先进先出”特点,并且循环队列可以使便道无限利用,因此循环队列来描述便道,可以利用数组的下标表示便道的位置,具体定义如下:
#define Max2 100 //便道不限制停放车辆的数目,设为足够大
typedef struct{
car pavement[Max2];//各汽车信息的存储空间
int front,rear;//用来指示队头和队尾位置的静态指针
}pavement;
(4)、当某辆车要离站时,有时需要比它后进停车位的车为它让路,而且它开走之后让路的车要按照原来的次序再次进入停车位的某个车位上,为了完成此功能,要再定义一个辅助栈,停车位中让路的车依次“压入”辅助栈,待提出开走请求的车开走后再从辅助栈的栈顶依次“弹出”到停车位中。对辅助栈也采用顺序栈,具体定义如下:
typedef struct{
car buffer[Max1];//各汽车信息的存储空间
int top;//用来指示栈顶位置的静态指针
}buffer;
2、功能(函数)设计
(1)本程序主要有四大功能模块,分别为程序功能介绍和操作提示模块、汽车进入停车站的管理模块、汽车离开停车位的管理模块和查看停车场状态的查询模块。具体功能描述如下:
1)程序功能介绍和操作提示模块:此模块在主函数中实现,给出程序提示信息,具体屏幕显示如下:
2)汽车进入停车站的管理模块:此模块用来登记进入停车场的汽车的车牌号和对该车的调度过程并修改该车的状态,具体屏幕显示如下:
函数原型为void come(stopping *L,pavement *S);
3)汽车离开停车位的管理模块:此模块用来为提出离开停车场的车辆做出调度处理,并修改相关车辆的状态,具体屏幕显示如下:
函数原型为:void out(stopping *L,pavement *S,buffer *B);
4)查看停车场停车状态的查询模块:此模块用来显示停车位和便道上各位置的状态,具体屏幕显示如下:
函数原型为:void show(stopping *L,pavement *S);
四、实验结果(程序)及分析
1、主要程序代码:
// 停车场问题.cpp : 定义控制台应用程序的入口点。
#include stdafx.h
#include iostream
#include string.h
#define Max1 5
#define Max2 100 //便道不限制停放车辆的数目,设为足够大
using namespace std;
typedef struct{
char license_plate[20];//牌照号码
char state;//汽车状态,但是程序中用处不大
}car;
typedef struct{
car stop[Max1];//各汽车信息的存储空间
int top;//指示栈顶位置的静态指针,在这里指向车站最外面的车
}stopping;
typedef struct{
car pavement[Max2];//各汽车信息的存储空间
int front,rear;//用来指示队头和队尾位置的静态指针
}pavement;
typedef struct{
car buffer[Max1];//各汽车信息的存储空间
int top;//用来指示栈顶位置的静态指针
}buffer;
stopping *init_stopping(){ //初始化停车位
stopping *s;
s=new stopping;
if(!s)
return NULL;
else{
s-to
您可能关注的文档
- 数学归纳法教学问题研究..doc
- 数学教学中的人文精神..doc
- 数学教学中课堂提问的误区与对策..doc
- 数学教育专业教学模式改革典型案例..doc
- 数学教学设计的方法与策略评价..doc
- 数学教案讲义二次函数与命题..doc
- 数学新编综合试题的考法评析三七-2012.5.9..doc
- 数学模型在机械优化设计中的应用..docx
- 数学智能培养与提高(小学低年级)..doc
- 数学模型在现代机械设计中的应用..doc
- 数据仓库:Redshift:Redshift与BI工具集成.docx
- 数据仓库:Redshift:数据仓库原理与设计.docx
- 数据仓库:Snowflake:数据仓库成本控制与Snowflake定价策略.docx
- 大数据基础:大数据概述:大数据处理框架MapReduce.docx
- 实时计算:GoogleDataflow服务架构解析.docx
- 分布式存储系统:HDFS与MapReduce集成教程.docx
- 实时计算:Azure Stream Analytics:数据流窗口与聚合操作.docx
- 实时计算:Kafka Streams:Kafka Streams架构与原理.docx
- 实时计算:Kafka Streams:Kafka Streams连接器开发与使用.docx
- 数据仓库:BigQuery:BigQuery数据分区与索引优化.docx
文档评论(0)