#include <stdio.h>
#include <stdlib.h>
typedef struct stacknode
{
int data;
struct stacknode *next;
}StackNode;
typedef struct
{
StackNode *top;
}LinkStack;
LinkStack *InitStack(LinkStack *S)
{
S=(LinkStack *)malloc(sizeof(LinkStack));
S->top=NULL;
return S;
}
int Push(LinkStack *S,int item)
{
StackNode *p;
p=(StackNode *)malloc(sizeof(StackNode));
p->data=item;
p->next=S->top;
S->top=p;
}
int Pop(LinkStack *S,int *item)
{
StackNode *p;
p=S->top;
if(S->top==NULL)
{
printf("Stack is empty!\n");
return 0;
}
*item=p->data;
S->top=p->next;
free(p);
return 1;
}
int GetStack(LinkStack *S)
{
if(S->top==NULL)
{
printf("Stack is empty!\n");
return 0;
}
else
return S->top->data;
}
int main()
{
LinkStack *S;
S=InitStack(S);
}