自动停车场由一个可停放n 辆车的狭长通道构成,且只有一个入口可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设入口在最南端)。若停车场内已停满n 辆车,则后来的汽车需在入口外的临时等候便道上等候,当有车要离开时,临时等候便道上的第一辆车即可进入。当自动停车场内某辆车要离开时,必须先将在它之后
进入的车辆移出为其让路,待该辆车离开后,其他车辆再按原次序移入自动停车场。每辆车离开自动停车场时,应按其停留时间的长短交费(在临时等候便道上停留的时间不收费)。
//head.h
#ifndef HEAD_H_INCLUDED
#define HEAD_H_INCLUDED
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cstdlib>
using namespace std;
#define maxstacksize 4
#define maxqueuesize 5
struct Elem
{
char op;
char id[10];
int hour;
int minu;
};
struct Stack
{
Elem* base;
Elem* top;
int stacksize;
};
struct QNode
{
Elem data;
QNode* next;
};
struct Queue
{
QNode* Front;
QNode* Rear;
int queuesize;
};
void InitStack(Stack &s);
Elem GetTop(Stack s);
void push(Stack &s, Elem e);
E