# include <iostream>
# include <stdlib.h>
using namespace std;
//链栈节点定义
typedef struct LNode
{
int data;
struct LNode *next;
}LNode;
//初始化
void initStack(LNode *&lst)
{
//创建头结点
lst = (LNode*)malloc(sizeof(LNode));
lst -> next = NULL;
}
//判断栈是否为空
int isEmpty(LNode *lst)
{
if (lst -> next == NULL)
return 1;
else
return 0;
}
//进栈
void push(LNode *lst, int x)
{
LNode *p;
//为进栈元素申请新的结点空间
p = (LNode*)malloc(sizeof(LNode));
p->next = NULL;
p->data = x;
p->next = lst -> next;
lst->next = p;
}
//出栈
int pop(LNode *lst, int &x)
{
LNode *p;
if (lst->next = NULL)
return 0;
//删除原元素
p = lst->next;
x = p->data;
lst->next=p->next;
free(p);
return 1;
}
int main()
{
LNode *lst;
//初始化
initStack(lst);
//进栈
push(lst, 1);
//出栈
int x;
pop(lst, x);
cout << x << endl;
return 0;
}