#include "iostream"
using namespace std;
typedef struct LinkStackNode{
int data;
LinkStackNode * next;
}LinkStackNode,*LinkStack;
void InitLinkStack(LinkStack &L);
void Push(LinkStack &L,int element);
void Pop(LinkStack &L);
void main(int argc, char **argv){
LinkStack L;
InitLinkStack(L);
for (int i = 0;i<3;i++)
{
Push(L,i);
}
while(L){
Pop(L);
}
}
void InitLinkStack(LinkStack &L){
L = (LinkStack)malloc(sizeof(LinkStackNode));
L->next = NULL;
if (!L)
{
exit(0);
}
}
void Push(LinkStack &L,int element){
LinkStack p = (LinkStack)malloc(sizeof(LinkStackNode));
p->data = element;
if (!p)
{
exit(0);
}
p->next = L;
L = p;
}
void Pop(LinkStack &L){
//当L已经是栈底元素的时候,L->next就是空了
if(L->next!=NULL){
LinkStack p = L;
L= L->next;
cout<<p->data<<endl;
free(p);
}
}