用链表实现栈的基本功能
用链表实现栈的初始化、入栈、出栈、删除和销毁、
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef int SElemType;
typedef int Status;
#define Ok 1;
#define Error 0;
#define Ture 1;
#define False 0;
typedef struct StackNode{
SElemType data;
struct StackNode *next;
}StackNode, *LinkStack;
Status InitStack(LinkStack &s)//初始化栈
{
s=NULL;
return Ok;
}
Status Push(LinkStack &s,SElemType e)//入栈
{
StackNode *p;
p=new StackNode;
p->data=e;
p->next=s;
s=p;
return Ok;
}
Status Pop(LinkStack &s,SElemType &e)//出栈
{
StackNode *p;
if(s==NULL) return Error;
e=s->data;
p=s;
s=s->next;
delete p;
return Ok;
}
SElemType GetTop(LinkStack s)//取栈顶元素
{
if(s!=NULL)
return s->data;
}
Status ClearStack(LinkStack &s)//清空栈
{
StackNode *p;
p=s;
while(s!=NULL)
{
p=s;
s=s->next;
delete p;