天天看点

第三章 栈和队列

第三章 栈和队列

一、栈的基本概念

1、栈的定义:

栈:只允许在一段进行插入和删除的限定性线性表。

栈顶:线性表允许进行插入和删除的那一端。

栈低:不允许插入和删除的那一端。

空栈:不含任何元素的空表。

根据上述定义,每次进栈的元素都被放在原栈顶元素之上而成为新的栈顶,而每次出栈的总是当前栈中“最新”的元素,即最后进栈的元素。在下图所示的栈中,元素是以a1,a2,a3,…,an的顺序进栈的,而退栈的次序却是an,…,a3,a2,a1。栈的修改是按后进先出的原则进行的。因此,栈又称为后进先出的线性表,简称为LIFO表。

2、栈的抽象数据类型

栈的抽象数据类型定义

ADT Stack

数据元素:可以是任意类型的数据,但必须属于同一个数据对象。

结构关系:栈中数据元素之间是线性关系。

基本操作:

(1)InitStack(S)

操作前提:S为未初始化的栈。

操作结果:将S初始化为空栈。

(2)ClearStack(S)

操作前提:栈S已经存在。

操作结果:将栈S置成空栈。

(3)IsEmpty(S)

操作前

继续阅读