#include <stdio.h>
#include <stdlib.h>
typedef int Status;
#define TRUE 1
#define FALSE 0
#define MAXSIZE 1000
typedef int SElemType;
typedef struct StackNode
{
SElemType data;
struct StackNode *next;
}StackNode,*LinkStackPtr;
typedef struct LinkStack
{
LinkStackPtr top;
int count;
}LinkStack;
Status Push(LinkStack *S, SElemType e)
{
LinkStackPtr insertData = (LinkStackPtr) malloc(sizeof(StackNode));
insertData->data = e;
insertData->next = S->top;
S->top = insertData;
S->count++;
return TRUE;
}
Status Pop(LinkStack *S, SElemType *e)
{
LinkStackPtr p;
if(S->count<=0)
return FALSE;
*e = S->top->data;
p = S->top;
S->top = S->top->next;
S->count--;
free(p);
return TRUE;
}
void main(void)
{
int i = 0,getPop = 0;
LinkStack stackTest;
stackTest.count = 0;
for(i = 0; i<10; i++)
{
Push(&stackTest, i);
}
printf("count = %d\r\n",stackTest.count);
while(stackTest.count!=0)
{
Pop(&stackTest, &getPop);
printf("getPop = %d\r\n",getPop);
}
}