0、节点结构体定义
typedef struct SNode{
int data;
struct SNode *next;
} SNode, *LinkStack;
1、初始化
bool InitStack(LinkStack &S) //S为栈顶指针(存数据的头节点)
{
S = NULL;
return true;
}
2、入栈
bool Push(LinkStack &S, int e)
{
LinkStack p = new SNode;
e = p->data;
p->next = S;
S = p;
return true;
}
3、出栈
bool Pop(LinkStack &S, int &e)
{
if(S == NULL){
return false;
}
LinkStack p = S;
e = p->data;
S = S->next;
delete p;
return true;
}
4、取栈顶元素
int GetTop(LinkStack S)
{
if(S!=NULL){
return S->data;
}else{
return -1;
}
}
5、释放内存
void StackRelese(LinkStack &S)
{
int e;
while(Pop(S, e)){
}
}