在上篇博文中我已经将栈的顺序存储结构简单地介绍了一下,也举了一个进制转换的例子,供大家学习参考。这里将继续进行栈的有关介绍,本篇博文重点对栈的链式存储结构进行分析。
一,栈的链式存储结构
栈的链式存储结构简称栈链。栈因为只是栈顶来做插入和删除操作,所以比较好的方法就是将栈顶放在单链表的头部,栈顶指针和单链表的头指针合二为一。
图1 栈的链式结构示意图
在图1中可以看到,这是一个栈链,栈顶就相当于单链表的表头,栈底就相当于单链表的表尾。
二,栈链的定义结构
typedef struct StackNode
{
ElemType data; //存放栈的数据
struct StackNode *next;
}StackNode, *LinkStackPtr;
typedef struct LinkStack
{