栈的链式存储结构
采用链式存储的栈称为链栈,链栈的优点是便于多个栈共享存储空间和提高其效率,且不存在栈满上溢的情况。通常采用单链表实现链栈,并规定所有操作都是在单链表的表头进行的。这里规定链栈没有头结点,Lhead
指向栈顶元素,如图所示。

栈的链式存储类型可描述为:
c
typedef struct Linknode{
ElemType data; //数据域
struct Linknode *next; //指针域
}LiStack; //栈类型定义
采用链式存储,便于结点的插入与删除。链栈的操作与链表类似,入栈和出栈的操作都在链表的表头进行。需要注意的是,对于带头结点和不带头结点的链栈,具体的实现会有所不同。