数据结构与算法——第三章 栈和队列(1)

目录​​​​​​​

3.1 栈和队列的定义和特点

1. 定义

2. 栈的应用

3. 队列的应用

3.1.1 栈的定义和特点

3.1.2 队列的定义和特点

3.2 案例引入

3.2.1 进制转换

 3.2.2 括号匹配的检验

3.3.3 表达式求值 

3.3.4 舞伴问题

3.1 栈和队列的定义和特点

1. 定义

数据结构与算法——第三章 栈和队列(1)_第1张图片

        限定栈插入在最后一个,删除也是最后一个;

        而队列插入也是最后一个,但删除却是第一个。

2. 栈的应用

特性:后进先出

数据结构与算法——第三章 栈和队列(1)_第2张图片

3. 队列的应用

特性:先进先出

数据结构与算法——第三章 栈和队列(1)_第3张图片

3.1.1 栈的定义和特点

        栈(stack)是一个特殊的线性表,是限定仅在一端(通常是表尾)进行插入和删除操作的线性表。又称为后进先出(Lsat In First Out)的线性表,建成LIFO结构。

数据结构与算法——第三章 栈和队列(1)_第4张图片

数据结构与算法——第三章 栈和队列(1)_第5张图片

 数据结构与算法——第三章 栈和队列(1)_第6张图片

 思考:

数据结构与算法——第三章 栈和队列(1)_第7张图片

        不存在cab的情况。 

栈的相关概念总结: 数据结构与算法——第三章 栈和队列(1)_第8张图片

数据结构与算法——第三章 栈和队列(1)_第9张图片

3.1.2 队列的定义和特点

        队列(queue)是一种先进先出(First In First Out——FIFO)的线性表。在表一端插入(表尾),在另一端(表头)删除。

数据结构与算法——第三章 栈和队列(1)_第10张图片

3.2 案例引入

3.2.1 进制转换

数据结构与算法——第三章 栈和队列(1)_第11张图片

 e.g.

数据结构与算法——第三章 栈和队列(1)_第12张图片

 3.2.2 括号匹配的检验

数据结构与算法——第三章 栈和队列(1)_第13张图片

3.3.3 表达式求值 

数据结构与算法——第三章 栈和队列(1)_第14张图片

数据结构与算法——第三章 栈和队列(1)_第15张图片

(1)表达式求值是程序设计语言编译中一个最基本的问题,它的实现也需要运用栈;

(2)这里介绍的算法是由运算符优先级确定运算顺序的对表达式求值算法——算符优先算法

3.3.4 舞伴问题

数据结构与算法——第三章 栈和队列(1)_第16张图片

你可能感兴趣的:(数据结构与算法,算法,数据结构,栈和队列)