链栈的初始化
链栈采用链表来存储栈
//链栈的定义
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;
}
ok,没问题!