#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node *next;
}Node,*PNode;
typedef struct
{
PNode top;
int size;
}Stack;
Stack *InitStack() //构造一个空栈
{
Stack *p = (Stack *)malloc(sizeof(Stack));
if(p!=NULL)
{
p->top = NULL;
p->size = 0;
}
return p;
}
void push(Stack *S,int item) //入栈
{
PNode p = (PNode)malloc(sizeof(Node));
if(p != NULL)
{
p->data = item;
p->next = S->top;
S->top = p;
S->size++;
}
}
void pop(Stack *S,int *m) //出栈
{
if(S->size > 0)
{
PNode p = S->top;
S->top = p->next;
S->size--;
*m = p->data;
free(p);
}
}
int main()
{
Stack *S;
int m;
S = InitStack();
push(S,1);
pop(S,&m);
printf("%d\n",m);
}
转载于:https://blog.51cto.com/liuzhanwei/1553077