typedef struct
{
datatype data[1024];
int top;
int pop;
}seqstack;
/**** 空栈 *****/
void SETNULL(seqstack *s)
{
s->top=-1;
s->pop=-1;
}
/**** 入栈 *****/
void PUSH(seqstack *s,datatype x,int nc_size)
{
if(s->top==nc_size-1)
{
s->pop++;
s->data[s->pop]=x;
}
else
{
s->top++;
s->data[s->top]=x;
}
}
/**** 栈空 *****/
int EMPTY(seqstack *s)
{
if(s->top>=0)return 0;
else return 1;
}
/**** 用于
LRU入栈 *****/
void PUSH1(seqstack *s,datatype x,int nc_size){
// s->pop++;
while(s->poppop++;
if(s->data[s->pop]==x){
for(int i=s->pop;idata[i]=s->data[i+1];
}
}
}
s->data[s->top]=x;
}
/**** 判断 *****/
int FULL(seqstack *s,int nc_size)
{
if(s->top==nc_size-1)return 1;
else return 0;
}
/**** 压栈 *****/
void POP(seqstack *s,int nc_size)
{
if(EMPTY(s))
{}
else
{
for(int i=0;idata[i]=s->data[i+1];
s->top--;
}
}
void showzhan(seqstack *s,int nc_size){
for(int k=nc_size-1;k>=0;k--){
cout<<"栈队列----------------------[ "
1