数据结构3_栈和队列

3 栈和队列

栈和队列的操作是线性表操作的子集。它们是操作受限的线性表。

从数据结构的角度看,是限定性的数据结构。

从数据类型的角度看,是和线性表大不相同的两类重要的抽象数据类型。

3.1 栈

栈(Stack)是限定仅在表尾进行插入或删除操作的线性表。

表尾称为栈顶(Top)。

表头称为栈底(bottom)。

S=(a1, a2, a3, …an,),a1称为栈底元素,an为栈顶元素。栈中元素按a1、a2、…an的依次进栈。

退栈的元素应为栈顶元素。换句话说,栈的修改是按后进先出的原则进行的。栈又称为后进先出(LIFO)线性表。

栈的操作:栈顶进行插入或删除,栈的初始化、判空、取栈顶元素;

 

栈也有两种存储表示方法:顺序栈、链栈;

3.2 栈的应用举例

 

3.3 栈与递归实现

Hanoi塔

3.4 队列

先进先出的线性表结构;只允许在表的一端进行插入,而在另一端删除元素;

队尾、队头;

Queue

队列有两种存储表示:

链表表示的队列叫链队列

循环队列;

3.5 离散事件模拟

银行排队问题,计算一天中客户在银行逗留的平均时间,模拟银行的业务活动。

客户到达和离开银行的这两个时刻发生的事情称为“事件”。整个模拟程序将按照事件发生的先后顺序进行处理。这样一种模拟程序称为事件驱动模拟

原文地址:https://www.cnblogs.com/grooovvve/p/10398419.html