#include<stdio.h>
#define maxsize 10
typedef struct s {
int data[maxsize];
int top;
}SqStack;
int InitStack(SqStack& S1,SqStack &S2) {
S1.top = -1;
S2.top = maxsize ;
return 1;
}
int push(SqStack &S,int x,int n) {
if (n == 1) {
S.data[++S.top] = x;
}
else
{
S.data[--S.top] = x;
}
return 1;
}
int pop(SqStack& S, int &x, int n) {
if (n == 1){
x=S.data[S.top--];
}
else
{
x=S.data[S.top++];
}
return 1;
}
int isfull(SqStack S1, SqStack S2) {
if (S1.top + 1 == S2.top) {
return 1;
}
else {
return 0;
}
}
int main() {
SqStack S1;
SqStack S2;
int x;
InitStack(S1, S2);
for (int i = 0; i < 5; i++)
push(S1,i,1);
for (int i = 0; i < 5; i++)
push(S2, i, 2);
printf("是否栈满:%d\n", isfull(S1, S2));
for (int i = 0; i < 5; i++){
pop(S1, x, 1);
printf("%d ", x);
}
for (int i = 0; i < 5; i++) {
pop(S2, x, 2);
printf("%d ", x);
}
}
共享栈的实现
最新推荐文章于 2024-01-15 19:40:01 发布