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