- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
停车场管理 数据结构试验报告(完美运行)
河北工业大学
《数据结构》课程实验
实 验 报 告
题目:
专业:
班级:
姓名:
完成日期:
一、试验内容
设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列,若停车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等侯,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制??上述要求进行管理的模拟程序。
二、试验目的
(1)深入了解栈和队列的特性,掌握栈和队列的存储方法。
(2)掌握栈和队列的基本操作,如初始化、入栈(队列)、出栈(队列)等,并能在实际问题背景下灵活运用。
三、流程图
= 1 \* ROMAN I.Judge_Output算法流程图:
= 2 \* ROMAN II.A_cars算法流程图:
= 3 \* ROMAN III.D_cars算法流程图:
四、源程序代码
#include stdio.h
#include malloc.h
#define N 2 /*停车场内最多的停车数*/
#define Price 2 /*每单位停车费用*/
typedef struct
{
int CarNo[N]; /*车牌号*/
int CarTime[N]; /*进场时间*/
int top; /*栈指针*/
} SqStack; /*定义顺序栈类型*/
/*定义链队类型*/
typedef struct qnode
{
int CarNo; /*车牌号*/
struct qnode *next;
} QNode;
typedef struct
{
QNode *front; /*队首和队尾指针*/
QNode *rear;
} LiQueue;
/*顺序栈的基本运算算法*/
void InitStack(SqStack *s)
{
s=(SqStack *)malloc(sizeof(SqStack));
s-top=-1;
}
int StackEmpty(SqStack *s)
{
return(s-top==-1);
}
int StackFull(SqStack *s)
{
return(s-top==N-1);
}
/*S中的插入新元素*/
int Push(SqStack *s,int e1,int e2)
{
if (s-top==N-1)
return 0;
s-top++;
s-CarNo[s-top]=e1;
s-CarTime[s-top]=e2;
return 1;
}
/*删除S的栈顶元素,并用e1,e2返回其值*/
int Pop(SqStack *s,inte1,int e2)
{
if (s-top==-1)
return 0;
e1=s-CarNo[s-top];
e2=s-CarTime[s-top];
s-top--;
return 1;
}
void DispStack(SqStack *s)
{
int i;
for (i=0;i=s-top;i++)
printf(%d ,s-CarNo[i]);
printf(\n);
}
/*以下为链队列的基本运算算法*/
void InitQueue(LiQueue *q)
{
q=(LiQueue *)malloc(sizeof(LiQueue));
q-front=q-rear=NULL;
}
int QueueLength(LiQueue *q)
{
int n=0;
QNode *p=q-front;
while (p!=NULL)
{
n++;
p=p-next;
}
return(n);
}
int QueueEmpty(LiQueue *q)
{
if (q-rear==NULL)
return 1;
else
r
文档评论(0)