#include
#include
#include
#define OK 1
#define OVERFLOW -2
#define SIZE 2 //停车场位置数
typedef int Status;
typedef struct Car1{
int number; //车号
int ar_time; //到达时间
}CarNode;
typedef struct{
CarNode *base; //堆栈底
CarNode *top; //堆栈顶
int stacksize;
}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;
return OK;
}
Status Push(Park &P,CarNode e){ //