链栈的表示
typedef struct StackNodef{
    SElemType data;
    struct StackNode *next;
}StackNode,*LinkStack;
LinkStack S;
 
注意:
- 
链表的头指针就是栈顶 
- 
不需要头结点 
- 
基本不存在栈满的情况 
- 
空栈相当于头指针指向空 
- 
插入和删除仅在栈顶处执行 
链栈的初始化
void InitStack(LinkStack &S){
    //构造一个空栈,栈顶指针置为空
    S=NULL;
    return OK;
}
链栈是否为空
Status StackEmpty(LinkStack S){
    if (S==NULL) return TRUE;
    else return FALSE;
}
链表的入栈
Status Push(LinkStack &S,SElemType e){
    p=new StackNode;	//生成新结点p
    p->data=e;	//将新结点数据域置为e
    p->next=S;	//将新结点插入栈顶
    S=p;	//修改栈顶指针
    return OK;
}
链栈的出栈
Status Pop(LinkStack &S,SElemType &e){
    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;
}
