没有合适的资源?快使用搜索试试~ 我知道了~
数据结构上机--停车场管理问题.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 69 浏览量
2021-10-10
20:21:08
上传
评论
收藏 70KB DOC 举报
温馨提示
试读
15页
数据结构上机--停车场管理问题.doc
资源推荐
资源详情
资源评论
.. -
实习指导
[实习题目]:
停车场管理。
[实习容]:
首先,实现栈和队列的根本操作,在此根底上,实现停车场管理。
停车场管理问题描述:设停车场是一个可停放 n 辆车的狭长通道,且只有一个大门可供
汽车进出。在停车场,汽车按到达的先后次序,由北向南依次排列〔假设大门在最南端〕。
假设车场已停满 n 辆车,那么后来的汽车需在门外的便道上等候,当有车开走时,便道上的
第一辆车即可开入。当停车场某辆车要离开时,在它之后进入的车辆必须先退出车场为它让
路,待该辆车开出大门后,其它车辆再按原次序返回车场。每辆车离开停车场时,应按其停
留时间的长短交费〔在便道上停留的时间不收费〕。
试编写程序,模拟上述管理过程。要求以顺序栈模拟停车场,以链队列模拟便道。
从终端读入汽车到达或离去的数据,每组数据包括三项:
1 是“到达〞还是“离去〞;
2 汽车牌照;
3 “到达〞或“离去〞的时刻。
与每组输入信息相应的输出信息为:
如果是到达的车辆,那么输出其在停车场中或便道上的位置;
如果是离去的车辆,那么输出其在停车场中停留的时间和应交的费用。
〔提示:需另设一个栈,临时停放为让路而从车场退出的车。〕
[实习目的]:
通过实习,熟悉栈和队列的根本特点,掌握利用栈和队列解决具体问题的方法。
[实习步骤]:
1.实现顺序栈的根本操作
根本思路
首先实现一个整型顺序栈的初始化、判栈空、进栈、出栈等根本操作,并在主程序中调
用这些操作。
根本框架
#include <stdio.h>
#dene TRUE 1
#dene FALSE 0
#dene Stack_Size 50
typedef int StackElementType;
. . word.zl-
.. -
typedef struct
{
StackElementType elem[Stack_Size];
int top;
} SeqStack;
/* 以下是函数原形说明。注意函数头后面有分号。 */
void InitStack(SeqStack *s);
intIsEmpty(SeqStack *s);
int Push(SeqStack *s, StackElementType e);
int Pop(SeqStack *s, StackElementType *e);
/* 以下是函数定义。注意函数头后面无分号。 */
void InitStack(SeqStack *s)
/* 顺序栈的初始化函数 */
{ ……; }
intIsEmpty(SeqStack *s)
/* 顺序栈的判栈空函数 */
{ ……; }
int Push(SeqStack *s, StackElementType e)
/* 顺序栈的进栈函数 */
{ ……; }
Status Pop(SeqStack *s, StackElementType *e)
/* 顺序栈的出栈函数 */
{ ……; }
voidmain(void)
{ ……; }
要点提示
主程序的根本过程如下:
voidmain(void)
{ SeqStack my_stack ;
StackElementType x;
StackElementType y;
InitStack(&my_stack );
. . word.zl-
.. -
if(IsEmpty(&my_stack)) 打印:“my_stack 已被初始化为空栈〞;
提示输入 10 个正整数;
循环 10 次,执行下面操作:
{
读入整数 x;
Push(&my_stack, x);
}
while(!IsEmpty(&my_stack))
{
Pop(&my_stack, &y);
打印 y;
}
}
测试数据
读入数据:19,14,23,01,68,20,84,27,55,11
打印结果:读入序列的逆序。
2.同时实现顺序栈和链队列的根本操作
根本思路
在前面已经实现的整型顺序栈的根底上,进一步实现一个整型链队列的根本操作。
根本框架
〔1〕在上述程序框架的前面,增加如下包含语句:
#include <malloc.h>
〔2〕在上述程序框架的类型定义局部,增加如下链队列定义:
typedef int QueueElementType;
typedef struct Node
{
QueueElementType data; /*数据域*/
struct Node *next; /*指针域*/
} LinkQueueNode;
typedef struct
{
LinkQueueNode * front;
LinkQueueNode * rear;
} LinkQueue;
. . word.zl-
剩余14页未读,继续阅读
资源评论
wsbhm62
- 粉丝: 7
- 资源: 22万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功