链栈是运算受限的单链表,只能在链表头部进行操作。
typedef StackNode{
SElemType data;
struct StackNode *next;
}StackNode,*LinkList;
LinkList S;
1:链栈的初始化:
void InitStack(LinkStack &S){
//构造一个空栈,栈顶指针置为空。
S=NULL;
return OK
}
2:判断链表是否为空
Status StackEmpty(LinkStack S){
if(S==NULL) return TRUE;
else return FALSE;
}
3:链栈的入栈。
Status Push(LinKStack &S,SElemType e){
p=(SElemType*)mlloc(sizeof(LinkStack));//生成新的结点p;
p->data=e;//将新结点数据域置为e;
p->next=S;//将新结点插入栈顶。
S=p;//修改栈顶指针。
return OK;
}