栈的顺序存储
代码如下:
#include<stdio.h>
#define Maxsize 10
typedef struct
{
int data[Maxsize];
int top;
}SqStack;
void InitStack(SqStack &S)
{
S.top=-1;
}
bool IsEmpty(SqStack S)
{
if(S.top==-1) return true;
else return false;
}
bool Push(SqStack &S,int x)
{
if(S.top==Maxsize-1) return false;
S.data[++S.top]=x;
return true;
}
void Pop(SqStack &S,int &x)
{
if(S.top==-1)
{
printf("栈空!\n");
}
x=S.data[S.top];
S.top--;
}
void GetTop(SqStack S,int &y)
{
y=S.data[S.top];
}
int main()
{
SqStack S;
InitStack(S);
IsEmpty(S);
int push1=Push(S,150);
if(push1==0) printf("栈满,入栈失败!\n");
int push2=Push(S,500);
if(push1==0) printf("栈满,入栈失败!\n");
int push3=Push(S,985);
if(push1==0) printf("栈满,入栈失败!\n");
int x;
Pop(S,x);
printf("栈顶出栈元素x===%d\n",x);
int y;
GetTop(S,y);
printf("当前栈顶元素y===%d\n",y);
return 0;
}