#include <iostream>
using namespace std;
struct LinkStack
{
int data;
LinkStack *next;
};
void push(LinkStack *&S,int data) //入栈
{
LinkStack *p=new LinkStack;
p->data=data;
p->next=S;
S=p;
}
void pop(LinkStack *&S) //出栈
{
LinkStack *q=S;
S=S->next;
delete q;
}
int getTop(LinkStack *S) //显示栈顶元素
{
return S->data;
}
void test(LinkStack *&S)
{
int i=1;
while(i)
{
cin>>i;
if(i>0)
push(S,i);
if(i<0)
{
cout<<"getTop="<<getTop(S)<<endl;
pop(S);
}
if(i==0)
break;
}
}
void show(LinkStack *S)
{
while(S)
{
cout<<S->data<<" ";
S=S->next;
}
}
int main()
{
LinkStack *S=NULL;
test(S);
show(S);
return 0;
}