正在加载图片...
牌号和到达时间:若以满,就将数据放在队尾,表示车辆在便道上等待进入 停车场 当输入数据表示有车辆要离去,就在栈中寻找是否有该车牌号的车辆, 如有就让此车辆离开停车场,并根据停车时间记费:如没有找到,就到队列 中(便道上)去寻找此车牌号的车辆,如有就允许此车辆离开队列,但不收 费:如没有就显示出错信息。 当离开停车场的车辆位于栈的中间时,必须先将此位置到站顶之间的所 有数据倒到另一个栈中去(车辆规避所),然后安排车辆出栈,最后将另 个栈中的数据倒回到停车场栈中来。 在模拟停车场管理时,还应注意,如果停车场栈中已没有车辆停放时, 输入数据仍然要求车辆退出,则显示出错信息;程序中停车场的停车数量为 n,但对便道没有规定,因此认为便道上可以听任意多的车辆 (2)程序实现 根据题目分析的结果,停车场和车辆规避所的栈可以采用顺序栈,而便 道可用链队列来模拟 #definen 2 /*定义停车场栈长度* #define M 5 /米M为单元时间的收费值*/ #define True 1 #define False o #include stdio.h” /*存储结构*/ typedef struct /*定义栈元素的类型* int arrtime teletype typedef struct *定义栈*/ lelemtype stack[N] top: I sgstktp typedef struct node /*定义队列节点的类型*/ struct node *next I queueptr typedef struct /*定义队列*/ lqueueptr * front,*rear F linkedquetp /*初始化栈*/ void inistack(sgstktp s)牌号和到达时间;若以满,就将数据放在队尾,表示车辆在便道上等待进入 停车场。 当输入数据表示有车辆要离去,就在栈中寻找是否有该车牌号的车辆, 如有就让此车辆离开停车场,并根据停车时间记费;如没有找到,就到队列 中(便道上)去寻找此车牌号的车辆,如有就允许此车辆离开队列,但不收 费;如没有就显示出错信息。 当离开停车场的车辆位于栈的中间时,必须先将此位置到站顶之间的所 有数据倒到另一个栈中去(车辆规避所),然后安排车辆出栈,最后将另一 个栈中的数据倒回到停车场栈中来。 在模拟停车场管理时,还应注意,如果停车场栈中已没有车辆停放时, 输入数据仍然要求车辆退出,则显示出错信息;程序中停车场的停车数量为 n,但对便道没有规定,因此认为便道上可以听任意多的车辆。 (2) 程序实现 根据题目分析的结果,停车场和车辆规避所的栈可以采用顺序栈,而便 道可用链队列来模拟。 #define N 2 /*定义停车场栈长度*/ #define M 5 /*M 为单元时间的收费值*/ #define True 1 #define False 0 #include “stdio.h” /*存储结构*/ typedef struct /*定义栈元素的类型*/ {int num; int arrtime; }elemtype; typedef struct /*定义栈*/ {elemtype stack[N]; int top; }sqstktp; typedef struct node /*定义队列节点的类型*/ {int num; struct node *next; }queueptr; typedef struct /*定义队列*/ {queueptr *front , *rear; }linkedquetp; /*初始化栈*/ void inistack(sqstktp s)
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有