#include<iostream>
#define maxSize 100 //后面没有分号 ;
using namespace std;
typedef struct //顺序栈的定义
{
int data[maxSize];//数据
int top;//栈顶指针
}SqStack;
void initStack(SqStack &st)
{
st.top=-1;//初始化只需要将栈顶指针置为-1就行了,表明一个空栈。为0时,表示还可以存储一个元素,因为数组的下标从0开始
}
int isEmpty(SqStack st)//判断栈空
{
if(st.top==-1)
cout<<"kong"<<endl;
else
cout<<"feikong"<<endl;
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;
}
void print(SqStack st)//打印
{
while(st.top!=-1)
{
cout<<st.data[st.top]<<endl;
st.top--;
}
}
int main()
{
SqStack Stack1;
initStack(Stack1);
isEmpty(Stack1);
Push(Stack1,2);
Push(Stack1,4);
print(Stack1);
int a;
Pop(Stack1,a);
print(Stack1);
cout<<a<<endl;
return 0;
}
打印:kong
4
2
4
2
4