top==-1 --> 堆栈空
top==0 -->下标为0的地方有一个元素(从0到Maxsize-1)
静态栈:先加后压 先抬后减
#define Maxsize 100
typedef struct stack_
{
int data[Maxsize];//数组
int top;//栈顶元素在数组中的位置
}*Stack;//结构体指针
入栈:(先判断堆栈是否已满)
void push(Stack ptrs,int item)//入栈
{
if(ptrs->top==Maxsize-1) cout<<"堆栈满";//0到Maxsize-1
else
ptrs->data[++(ptrs->top)]=item;//先top++,再压入元素
}
出栈:(先判断堆栈是否为空)
int pop(Stack ptrs)//出栈
{
if(ptrs->top==-1)
{
cout<<"栈空";
return -1;
}
else
return ptrs->data[(ptrs->top)--];//先抬出元素,后top--
}
题:请用一个数组实现两个堆栈,要求最大地利用数组空间,使