s[max_size]=0
top1=0;
top2=max_size;
bool isEmpty(int index)
{
if(index == 0 && top1 < 1)
return true;
if(index == 1 && top2 > len)
return true;
return false;
}
void push(int index, int data)
{
//已满
if(top1 > top2)
return;
//对栈1操作
if(index == 0)
{
//top
top1++;
s[top1] = data;
}
//对栈2操作
else
{
top2--;
s[top2] = data;
}
}
//出栈,index为0表示对第1个栈进行操作,index为1表示对第2个栈进行操作
int pop(int index)
{
int ret;
//对栈1操作
if(index == 0)
{
//栈1为空
if(top1 < 0)
{
//cout<<"error:underflow"<<endl;
return -1;
}
else
{
ret = s[top1];
top1--;
}
}
//对栈2操作
else
{
//栈2为空
if(top2 > len)
{
//cout<<"error:underflow"<<endl;
return -1;
}
else
{
ret = s[top2];
top2++;
}
}
return ret;
}
一个数组实现两个栈
最新推荐文章于 2023-08-10 14:24:56 发布