- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验九栈与队列的应用
浙江大学城市学院实验报告
课程名称 数据结构基础
实验项目名称 实验九 栈与队列的应用
学生姓名 潘志良 专业班级 计算1201 学号
实验成绩 指导老师(签名 ) 日期 2013-11-27
实验目的和要求
1
2、掌握利用栈和队列的各种操作来进行具体的实际应用。
3、加强综合程序的分析、设计能力。
实验内容
1、请编制程序模拟停车场管理。停车场管理问题描述如下:
设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的先后次序依次从停车场最里面向大门口处停放 (即最先到达的第一辆车停放在停车场的最里面) 。如果停车场已放满n辆车,则以后到达的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车可以进入停车场。停车场内如有某辆车要开走,则在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费,停留在便道上的车不收停车费。
要求:
⑴ 以顺序栈模拟停车场,以链队列模拟停车场外的便道,另设一个顺序栈,临时停放为给要离开的汽车让路而从停车场退出来的汽车。
⑵ 按从终端读入的数据序列进行管理。每一组输入数据包括三个数据项:汽车到达或离开的信息、汽车牌照号码、汽车到达或离开的时刻。如: (‘A’, 1, 5), (‘A’, 2, 10), (‘D’, 1, 15), …… , (‘E’, 0, 0)。 其中 ‘A’ 表示到达,‘D’ 表示离去,‘E’表示结束。输出数据为:若有车辆到达,则输出该汽车的停车位置;若有车辆离开,则输出该汽车在停车场内停留的时间和应交纳的费用。
⑶ 建立头文件SeqStack.h和LinkQueue.h,分别包含顺序栈和链队列的基本操作实现函数,建立主程序文件test3_3.cpp,在主函数中通过调用栈和队列的基本操作函数来实现上述功能。
提示:
栈与队列中的每个元素表示一辆汽车,包含两个数据项:汽车牌照号码和进入停车场的时间。即在test3_3.cpp中可定义:
typedef struct
{
int num; //汽车牌照号码
int time; //进入停车场的时刻
} ElemType; //栈与队列中元素的数据类型
2、填写实验报告,实验报告文件取名为report9.doc。
3、上传实验报告文件report9.doc 、源程序文件test3_3.cpp及SeqStack.h和LinkQueue.h到Ftp服务器上自己的文件夹下。
三. 抽象数据类型定义
(分别说明你设计的栈和队列所包含的基本操作及功能)
typedef struct{int num; int time;}ElemType;
四. 存储结构定义及算法思路
(包括栈和队列的存储结构定义、数据元素的类型定义及主函数的算法实现思路)
struct Stack{ElemType *stack;int top; int MaxSize;};
struct LNode{ ElemType data; LNode *next;};
void InitQueue(LinkQueue Q){……}初始化列表
bool EmptyQueue(LinkQueue Q){……}判断列表是否为空
void EnQueue(LinkQueue Q,ElemType item){……}插入列表元素
ElemType OutQueue(LinkQueue Q){……}取列表元素
ElemType PeekQueue(LinkQueue Q){……}取列表表头元素
void ClearQueue(LinkQueue Q)){……}清除列表
void InitStack(Stack S){……}初始堆栈
bool EmptyStack(Stack S){……}判断堆栈是否为空
void Push(Stack S,ElemType item){……}插入堆栈元素
ElemType Pop(Stack S){……}取堆栈元素
ElemType Peek(Stack S){……}取堆栈表头元素
void ClearStack(Stack S){……}清除堆栈
五. 实验结果与分析
(包括运行结果截图、结果分析等)
六. 心得体会
(记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。
文档评论(0)