简单实现顺序栈的建立、插入、弹出。
#include<iostream>
#include<stdlib.h>
using namespace std;
#define maxSize 100
typedef struct
{
int data[maxSize];
int top;
} SqStack;
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 pop2(SqStack &st)
{
if(st.top==-1)
return 0;
--(st.top);
return 1;
}
int print(SqStack st)
{
for(int i=0;i<=st.top;i++)
{
cout<<st.data[i];
}
}
int main()
{
SqStack st;
int x;
initStack(st);
push(st,1);
push(st,2);
push(st,3);
push(st,4);
push(st,5);
push(st,6);
print(st);
cout<<endl;
pop(st,x);
print(st);
cout<<endl;
pop2(st);
print(st);
cout<<endl;
}