收藏 分销(赏)

数据结构停车场管理.doc

上传人:a199****6536 文档编号:3736677 上传时间:2024-07-16 格式:DOC 页数:8 大小:61KB
下载 相关 举报
数据结构停车场管理.doc_第1页
第1页 / 共8页
数据结构停车场管理.doc_第2页
第2页 / 共8页
数据结构停车场管理.doc_第3页
第3页 / 共8页
数据结构停车场管理.doc_第4页
第4页 / 共8页
数据结构停车场管理.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、数据结构实验姓名:学号:专业:班级:实验二 停车场管理程序【实验学时】5学时【实验目的】掌握栈的后进先出特点【问题描述】设停车场内只有一个可停放辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列,若停车场内已停满辆汽车,则后来的汽车只能在门外的便道上等侯,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。【实验程序】#inc

2、lude#include#include#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define INFEASIBLE -1#define OVERFLOW -2#define SIZE 3/停车场位置数typedef int Status;/模拟停车场typedef struct Car1/车 int number;/车号 int ar_time;/到达时间CarNode;typedef struct/停车场 CarNode *base;/停车场的堆栈底 CarNode *top;/停车场的堆栈顶 int stacksiz

3、e;Park;/模拟便道typedef struct Car2/车 int number;/车号 int ar_time;/到达时间 struct Car2 *next;*CarPtr;typedef struct/便道 CarPtr front;/便道的队列的对头 CarPtr rear;/便道的队列的队尾 int length;Shortcut;Status InitStack(Park &P) P.base=(CarNode*)malloc(SIZE*sizeof(Car1); if(!P.base) exit(OVERFLOW); P.top=P.base; P.stacksize=0

4、; return OK;Status Push(Park &P,CarNode e)/进入停车场 *P.top+=e; +P.stacksize; return OK;Status Pop(Park &P,CarNode &e)/离开停车场 if(P.top=P.base) printf(停车场为空。); else e=*-P.top; -P.stacksize; return OK;Status InitQueue(Shortcut &S) S.front=S.rear=(CarPtr)malloc(sizeof(Car2); if(!S.front|!S.rear) exit(OVERFL

5、OW); S.front-next=NULL; S.length=0; return OK;Status EnQueue(Shortcut &S,int number,int ar_time)/进入便道 CarPtr p; p=(CarPtr)malloc(sizeof(Car2); if(!p) exit(OVERFLOW); p-number=number; p-ar_time=ar_time; p-next=NULL; S.rear-next=p; S.rear=p; +S.length; return OK;Status DeQueue(Shortcut &S,CarPtr &w)/离

6、开便道 if(S.length = 0) printf(通道为空。); else w = S.front-next; S.front-next=S.front-next-next; -S.length; return OK;Status Arrival(Park &P,Shortcut &S)/进站车辆的处理 int number,ar_time; printf(请输入车牌号:); scanf(%d,&number); printf(进场的时刻:); scanf(%d,&ar_time); if(P.stacksizenumber; Push(P,m); free(w); printf(车牌号

7、为%d的车已由便道进入停车场,m.number); printf(停车费为%d, 总占用车位数为%d,剩余车位数为%dn,money,P.stacksize,SIZE-P.stacksize); else printf(停车场不存在牌号为%d的车n, number); return OK;void main() int m=1; char flag; Park P,Q; Shortcut S; InitStack(P); InitStack(Q); InitQueue(S); while(m) printf(n 停车场管理程序 n); printf(=n); printf(* A 汽车进车场 *n); printf(* D 汽车出车场 *n); printf(* E 退出程序 *n); printf(请选择(A,D,E): ); scanf(%c,&flag); switch(flag) case A: case a: Arrival(P,S);break; /车进入停车场 case D: case d: Leave(P,Q,S);break; /车离开停车场 case E: case e: m=0; break; default: printf(Input error!n); break; while (flag != n) scanf(%c,&flag);

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服