本文数据结构讲解参考书目:
通过网盘分享的文件:数据结构 C语言版.pdf
链接: https://pan.baidu.com/s/159y_QTbXqpMhNCNP_Fls9g?pwd=ze8e 提取码: ze8e
数据结构基础讲解(三)——线性表之循环链表专项练习-优快云博客
个人主页:樱娆π-优快云博客
目录
栈的定义和特点
栈 (stack) 是限定仅在表尾进行插入或删除操作的线性表。 因此, 对栈来说, 表尾端有其 特殊含义, 称为栈顶 (top), 相应地, 表头端称为栈底 (bottom)。 不含元素的空表称为空栈。
栈又称为后进先出 (Last In First Out, LIFO) 的线性表。
由图可知,出栈和入栈都是在栈顶进行的!!
栈的类型定义
栈的基本操作除了入栈和出栈外, 还有栈的初始化、 栈空的判定,以及取栈顶元素。
ADT Stack {
数据对象: D={ai I ai含于EElemSet, i=1, 2, …, n,n>=0}
数据关系: R= { < ai-1, ai > I ai-1,ai含于D, i=2, …, n}
约定 an 端为栈顶, a1端为栈底
基本操作:
}
栈的基本操作
基本操作 | 初始条件 | 操作结果 |
InitStack(&S) | / | 构造一个空栈s |
DestroyStack(&S) | 栈S已存在 | 栈S被销毁 |
ClearStack(&S) | 栈S已存在 | 将S清为空栈 |
StackEmpty(S) | 栈S已存在 | 若栈 s 为空栈, 则返回 true, 否则返回 false |