ze>n)
break;
cin >> e.name ;
if(e.name=="break")
break;
cin >> e.a;
*s.top++ = e;
s.stacksize++;
}
}
void Found2(SqStack &s) //创建空栈
{
s.base = new Inform [n];
s.top = s.base;
s.stacksize = 0;
}
void Foundd(SqQueue &d) //创建队列
{
d.base = new Inform [n];
d.fro=d.rear=0;
}
//倒货
void TurnsZ1(SqStack &s1,SqQueue d) //新品上架倒货 主要思想:1.货架始终为栈s1 2.第n天上货,货架无货,旧货入队列,新货入栈,之后队列旧货入栈
{
Foundd(d);
Inform e;
int t;
while(s1.base != s1.top)
{
e = *(s1.top-1); //*(s1.top--)指向的仍然是s1.top
s1.top--;
s1.stacksize--;
t=d.rear;
d.rear=(d.rear+1)%100; //循环顺序队列
d.base[t] = e;
}
while(d.fro != d.rear)
{
t=d.fro;
d.fro=(d.fro+1)%100;
e=d.base[t];
*s1.top++=e;
s1.stacksize++;
}
}
void TurnsZ2(SqStack &s1,SqStack &s1_,SqStack s2) //前天货架有余货,倒货。 主要思想:1.s1为货架栈 2.新货存入栈s1_, 货架(s1)货物导入s2,然后s1_入货架(s1),s2入货架(s1)
{
Inform e;
while(s1.top!=s1.base)
{
e=*(s1.top-1);
s1.top--;
s1.stacksize--;
*s2.top++=e;
s2.stacksize++;
}
while(s1_.top!=s1_.base)
{
e=*(s1_.top-1);
s1_.top--;
s1_.stacksize++;
*s1.top++=e;
s1.stacksize++;
}
while(s2.top!=s2.base)
{
e=*(s2.top-1);
&