#include<iostream>
using namespace std;
#define ElemType int
const int MaxSize=50;
typedef struct{
ElemType data[MaxSize];
int top=-1;
}SqStack;
bool Push(SqStack &S,ElemType x){
if(S.top==MaxSize-1)return false;
S.data[++S.top]=x;
return true;
}
bool Pop(SqStack &S,ElemType &x){
if(S.top==-1)return false;
x=S.data[S.top--];
return true;
}
int main(){
SqStack S;
for(int i=1;i<=10;i++){
Push(S,i);
}
int x;
while(S.top>-1){
Pop(S,x);
cout<<x<<" ";
}
cout<<endl;
return 0;
}
#include<iostream>
using namespace std;
#define ElemType int
typedef struct SNode{
ElemType data;
struct SNode *next;
}SNode;
typedef struct{
SNode *top=NULL;
}LinkStack;
void Push(LinkStack &S,ElemType x){
SNode *p=new SNode;
p->data=x;
p->next=S.top;
S.top=p;
}
bool Pop(LinkStack &S,ElemType &x){
if(S.top==NULL)return false;
SNode *p=S.top;
x=p->data;
S.top=p->next;
delete p;
return true;
}
int main(){
LinkStack S;
for(int i=1;i<=10;i++){
Push(S,i);
}
int x;
while(S.top!=NULL){
Pop(S,x);
cout<<x<<" ";
}
cout<<endl;
return 0;
}