#include #include #define stacksize 2 //车站//容量 /////////////////////////////////////////////////////// typedef struct Snode{ int number; float int_time[2]; float bian_time[2]; }record; typedef struct { record *base; record *top; int size; }Stack; ///////////////////////////////////////////////////// typedef struct Qnode{ int number; float int_time[2]; struct Qnode *next; }Qnode,*Queue; typedef struct { Queue front; Queue rear; }Linkqueue; void xunhuan(Stack L,Linkqueue Q); void jixu(Stack L,Linkqueue Q); ///////////////////////////////////////////////////// ///////////////////////////////////////////////////// void InitStack(Stack &L) //堆栈操作 { L.base=(record*)malloc(sizeof(Snode)*stacksize); if(!L.base) exit(0); L.top=L.base; L.size=stacksize; } ///////////////////////////////////////////////////// void input(Stack &L,record h) { *L.top++=h; } /////////////////////////////////////////////////// Snode output(Stack &L,record &e) { e=*--L.top; return e; } int Stackman(Stack L) { if(L.top-L.base==L.size) return 0; else return 1; } int StackEmpty(Stack L) { if(L.base==L.top) return 0; else return 1; } ////////////////////////////////////////////////// ////////////////////////////////////////////////// void Initque(Linkqueue &Q) //队列操作 { Q.front=Q.rear=(Queue)malloc(sizeof(Qnode)); if(!Q.front) exit(0); Q.front->next=NULL; } ////////////////////////////////////////////////// void enqueue(Linkqueue &Q,int number,float time[]) { Queue q; printf("停车场已满,请将车辆停入便道!\n"); q=(Queue)malloc(sizeof(Qnode)); q->int_time[0]=time[0]; q->int_time[1]=time[1]; q->number=number; q->next=NULL; Q.rear->next=q; Q.rear=q; } /////////////////////////////////////////////////// void outqueue(Linkqueue &Q,Queue &e) //此处有点问题 { // Qnode *q; // q=(Queue)malloc(sizeof(Qnode)); e=Q.front->next; // Q.f...