typedef struct node
{
int data;
struct node *pNext;
}node;
typedef struct StackLink
{
node *top;
int size;
}StackLink;
void push(StackLink *S,int num)
{
node *p = (node *)malloc(sizeof(node));
p->data = num;
p->pNext = NULL;
if (S->size == 0)
{
S->size++;
S->top = p;
}
else
{
p->pNext = S->top;
S->top = p;
S->size++;
}
}
int pop(StackLink *S)
{
if (S->top == NULL)
{
printf("empty\n");
return 0;
}
int num;
num = S->top->data;
node *p = S->top;
S->top = p->pNext;
free(p);
return num;
}
void test()
{
StackLink *S;
S = (StackLink*)malloc(sizeof(StackLink));
S->top = NULL;
S->size = 0;
push(S,1);
push(S,2);
push(S,3);
push(S,4);
printf("%d\n",pop(S));
printf("%d\n",pop(S));
printf("%d\n",pop(S));
printf("%d\n",pop(S));
printf("%d\n",pop(S));
}
int main()
{
test();
return 0;
}