|
知识路径: > 计算机科学基础 > 常用数据结构 > 队列、栈 > 栈 >
|
考试要求:掌握
相关知识点:5个
|
|
|
|
栈的链式存储也叫链栈,我们把插入和删除均在链表表头进行的链表称为链栈。链栈也分有头节点和无头节点两种。带头节点的链栈操作比较方便。
|
|
|
|
|
|
.栈以链表的形式出现,链表(不带头节点)首指针为S,即栈顶为S,链表尾节点为栈底。
|
|
|
.初始化时,S=NULL(不带头节点);S=(LStack *),malloc(sizeof(LStack)),S→next=NULL(带头节点)。
|
|
|
.栈顶指针的引用为S(不带头节点)或S→next(带头节点),栈顶元素的引用为S→data(不带头节点)或S→next→data(带头节点)。
|
|
|
.栈空条件为S==NULL(不带头节点)或S→next=NULL(带头节点)。
|
|
|
.进栈操作和出栈操作与单链表在开始节点的插入和删除操作一致。
|
|
|
|
1)初始化initstack(LStack *S)
|
|
|
|
2)压栈(入栈)push(LStack *S, ElemType x)
|
|
|
|
3)退栈(出栈)pop(LStack *S, ElemType *x)
|
|
|
|
4)读栈顶元素gettop(LStack *S, ElemType *x)
|
|
|
|
|
|