链栈

链栈的优点是便于多个栈共享存储空间和提高其效率,且不存在栈满上溢的情况。链栈没有头结点。头指针指向栈顶元素。


栈的链式存储类型
typedef  struct StackNode
{
    ElemType data;
    struct StackNode *next;
} StackNode,  *LinkStack;


初始化栈
void InitStack(LinkStack &S)
{
    S = NULL;
}


判断栈空
Status StackEmpty(LinkStack S)
{
    if(S == NULL)
        return TRUE;
    return FALSE;
}


进栈
Status Push(LinkStack &S, ElemType e)
{
    LinkStack p=(LinkStack)malloc(sizeof(StackNode));
    if (!p)
        exit(OVERFLOW);
    p->data=e;
    p->next=S;
    S = p;      //S为栈顶  类似头插法
    return OK;
}


出栈


你可能感兴趣的:(链栈)