#include <iostream>
#define maxSize 100
using namespace std;
//顺序栈定义
typedef struct{
int data[maxSize];
int top;
}SqStack;
//初始化栈,将栈顶指针设为-1
void initStack(SqStack &st)
{
st.top = -1;
}
//判断栈是否为空
int isEmpty(SqStack &st)
{
if (st.top == -1)
return 1;
else
return 0;
}
//进栈代码
int push(SqStack &st, int x)
{
if (st.top == maxSize - 1)
return 0;
++(st.top);//先移动指针,在进栈
st.data[st.top] = x;
return 1;
}
//出栈代码
int pop(SqStack &st, int &x)
{
if (st.top == -1)
return 0;
x = st.data[st.top];
--(st.top);
return 1;
}
int main()
{
SqStack st;
initStack(st);
//初始化
cout << "栈初始化:" << st.top << endl;
//入栈
int p1 = push(st, 1);
int p2 = push(st, 3);
cout << p1 << "\t" << p2 << endl;
//出栈
int x1, x2;
pop(st, x1);
pop(st, x2);
cout << x1 << "\t" << x2 << endl;
//判断栈是否为空
int im = isEmpty(st);
if (im == 1)
cout << "栈中有元素";
else
cout << "栈空";
cout << endl;
return 0;
}