Status StackEmpty(LinkStack S)
{
if (S==NULL) return TRUE;
else return FALSE;
}
链栈的入栈
Status Push(LinkStack &S , SElemType e)
{
p=new StackNode; //生成新结点p
if (!p) exit(OVERFLOW);
p->data=e;//将新结点数据域置为e
p->next=S;//将新结点插入栈顶
S=p;//修改栈顶指针为p
return OK;
}
链栈的出栈
Status Pop (LinkStack &S,SElemType &e)
{
if (S==NULL) return ERROR;//栈空
e = S-> data;//将栈顶元素赋给e
p = S;//用p临时保存栈顶元素空间,以备释放
S = S-> next;//修改栈顶指针
delete p;//释放原栈顶元素的空间
return OK;
}