t=(QueueNode *)malloc(sizeof(QueueNode));
t->data=p;
t->next=NULL;
W->rear->next=t;
W->rear=t;
return(1);
}
}
void Leave(SeqStackCar *S0,SeqStackCar *S1,LinkQueueCar *W) /*车辆离开*/
{
int room;
CarNode *p;
QueueNode *q;
/*判断车场内是否有车*/
if(S0->top>0) /*有车*/
{
while(1) /*输入离开车辆的信息*/
{
}
{
}
cout<<"请输入车在车场的位置 1--"<top<<":";
cin>>room;
if(room>=1&&room<=S0->top) break;
while(S0->top>room) /*车辆离开*/
S1->top++;
/*临时通道栈顶指针*/
S1->stack[S1->top]=S0->stack[S0->top];
S0->stack[S0->top]=NULL;
S0->top--;
p=S0->stack[S0->top];
第 6 页
共 16 页
S0->stack[S0->top]=NULL;
S0->top--;
while(S1->top>=1)
/*判断临时通道上是否有车*/
{
S0->top++;
S0->stack[S0->top]=S1->stack[S1->top];
S1->stack[S1->top]=NULL;
S1->top--;}
PRINT(p,room);
if((W->head!=W->rear)&&S0->top
head->next;
p=q->data;
/*p 指向链队头*/
S0->top++;
cout<<" 便 道 的 "<num<<" 号 车 进 入 车 场 第 "<top<<" 位
置!"<>p->reach.hour;
if(p->reach.hour<0||p->reach.hour>23)
cout<<"输入错误!"<>p->reach.hour;
{
}
cin>>p->reach.min;
if(p->reach.min<0||p->reach.min>59)
{
cout<<"输入错误!"<>p->reach.min;
第 7 页
共 16 页
}
}
S0->stack[S0->top]=p;
W->head->next=q->next;
if(q==W->rear) W->rear=W->head;
free(q);
/*释放 q 地址*/
else cout<<"便道里没有车!"<>p->leave.hour;
while(p->leave.hour<0||p->leave.hour>23)
{
}
cout<<"输入错误!"<>p->leave.hour;
B1=p->leave.hour;
cin>>p->leave.min;
if(p->leave.min<0||p->leave.min>59)
{
cout<<"输入错误!"<