资源描述
1题目描述
设有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在通道内按车辆到达时间的先后顺序,若通道内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在其之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在通道的车在它离开时必须按它停留的时间长短交纳费用。
2任务要求
1、使用顺序栈模拟停车通道,链队列停车通道外的便道,实现车辆入栈、出栈、入队列、出队列、信息输出等功能。
2、车辆信息有:车牌号、到达信息、到达时刻、离去信息、离去时刻等;
3、输出的信息有:如果是到达的车辆,输出其在停车通道中或便道上的位置;
如果是离去的车辆,则输出其在停车通道中停留的时间和应交的费用
3 举例
(1)假定停车位为5个,连续有7辆汽车到来,牌照号分别为皖B001、皖B002、皖B003、皖B004、皖B005、皖B006、皖B007,前5辆车应该进入停车位1-5车位,第6、7辆车应停入便道的1、2位置上。
(2)皖B003的汽车从停车场开走,皖B005、皖B004的让路,皖B006从便道到停车位
#include <stdio.h>
#include <time.h>
void main()
{
time_t rawtime;
struct tm * tt;
time ( &rawtime );
tt = localtime ( &rawtime );
printf( "\n%4d-%02d-%02d 02d:%02d:%02d\n",1900+tt->tm_year, 1+tt->tm_mon,tt->tm_mday,tt->tm_hour,tt->tm_min,tt->tm_sec);
}
typedef struct time{
int hour;
int min;
}Time; /*时间结点*/
typedef struct node{
char num[10];
Time reach;
Time leave;
}CarNode; /*车辆信息结点*/
typedef struct NODE{
CarNode *stack[MAX+1];
int top;
}SeqStackCar; /*模拟车站*/
typedef struct car{
CarNode *data;
struct car *next;
}QueueNode;
typedef struct Node{
QueueNode *head;
QueueNode *rear;
}LinkQueueCar; /*模拟通道*/
展开阅读全文