#include<stdio.h>
#include<stdlib.h>
typedef struct liststack
{
int value;
struct liststack *pNext;
}L_STACK;
L_STACK *pLStack=NULL;
L_STACK* pushInt32(L_STACK *pHead,int value)
{
L_STACK *p;
p=(L_STACK *)malloc(sizeof(L_STACK));
p->value=value;
p->pNext=pHead;
pLStack=p;
return p;
}
L_STACK* popInt32(L_STACK *pHead,int *value)
{
int val;
L_STACK *node;
node=pHead;
pHead=pHead->pNext;
pLStack=node->pNext;
*value=node->value;
free(node);
return pLStack;
}
void dumpStack(void)
{
L_STACK *node;
node=pLStack;
printf("\n################################################################\n");
while(NULL!=node)
{
printf("%d\t",node->value);
node=node->pNext;
}
printf("\n################################################################\n");
}
int main(void)
{
int i;
int value;
for(i=0;i<10;i++)
{
(void)pushInt32(pLStack,i);
}
dumpStack();
for(i=0;i<5;i++)
{
(void)popInt32(pLStack,&value);
printf("[%d]\t",value);
}
dumpStack();
}
运行结果