
栈的顺序存储
代码如下:
#include#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===%dn",x); int y; GetTop(S,y); printf("当前栈顶元素y===%dn",y); return 0; }