#include <stdio.h>
#include <stdlib.h>
typedef char elemtype;
typedef struct snode
{
elemtype data;
struct snode *next;
}StatckNode;
typedef struct{
StatckNode *top; //栈顶指针
}linkstack;
/*=============================方法的声明===================*/
void creatstack(linkstack *);
void push(linkstack ,elemtype);
elemtype pop(linkstack );
int empty(linkstack * );
elemtype gettop(linkstack *);
int length(linkstack *);
void clear(linkstack *);
/*=================end===========================================*/
/*===================================基本操作的实现===============*/
//建立空栈
void creatstack(linkstack *s)
{
s->top = NULL;
}
//进栈
void push(linkstack *s,elemtype x)
{
StatckNode *p=(StatckNode*)malloc(sizeof(StatckNode));
p->data = x;
p->next = s->top;
s->top = p;
}
//出栈
elemtype pop(linkstack *s)
{
elemtype x;
StatckNode *p = s->top;
if(empty(s))
{
printf("Underflow!!\n");
exit (0);
}
x=p->data;
s->top = p->next;
free(p);
return x;
}
//判断栈是否为空
int empty(linkstack *s)
{
if(s->top == NULL)
{
return 1;
}