![第三章_栈和队列_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/15/1f268ce5-1d21-4a70-8787-0c42015f9661/1f268ce5-1d21-4a70-8787-0c42015f96611.gif)
![第三章_栈和队列_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/15/1f268ce5-1d21-4a70-8787-0c42015f9661/1f268ce5-1d21-4a70-8787-0c42015f96612.gif)
![第三章_栈和队列_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/15/1f268ce5-1d21-4a70-8787-0c42015f9661/1f268ce5-1d21-4a70-8787-0c42015f96613.gif)
![第三章_栈和队列_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/15/1f268ce5-1d21-4a70-8787-0c42015f9661/1f268ce5-1d21-4a70-8787-0c42015f96614.gif)
![第三章_栈和队列_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/15/1f268ce5-1d21-4a70-8787-0c42015f9661/1f268ce5-1d21-4a70-8787-0c42015f96615.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构与算法设计(数据结构与算法设计(Java版)版)第1章 绪论第2章 线性表第3章 栈与队列第4章 串第5章 数组第6章 树和二叉树第7章 图第8章 排序第第3章章 栈和队列栈和队列3.1 栈栈3.2 队列队列 目的:目的:使用栈或队列求解应用问题。使用栈或队列求解应用问题。 要求:要求:掌握栈和队列抽象数据类型,以及顺掌握栈和队列抽象数据类型,以及顺 序和链式存储结构实现;理解对于怎序和链式存储结构实现;理解对于怎 样的应用问题,需要使用栈或队列,样的应用问题,需要使用栈或队列, 以及怎样使用。以及怎样使用。 重点:重点:栈和队列的设计和应用。栈和队列的设计和应用。 难点:难点:栈或队
2、列的使用场合,以及如何使用栈或队列的使用场合,以及如何使用 栈和队列求解应用问题。栈和队列求解应用问题。3.1 栈栈3.1.1 栈抽象数据类型栈抽象数据类型3.1.2 顺序栈顺序栈3.1.3 链式栈链式栈3.1.4 栈的应用栈的应用3.1.1 栈抽象数据类型栈抽象数据类型栈(栈(stack)是一种特殊的线性表,)是一种特殊的线性表,其插入和删除操作只允许在线性表的一端进行。其插入和删除操作只允许在线性表的一端进行。 public interface SStack boolean isEmpty(); /判断是否空栈判断是否空栈 boolean push(E element); /入栈入栈 E
3、pop(); /出栈出栈 E get(); /取栈顶元素值取栈顶元素值3.1.2 顺序栈顺序栈public class SeqStack implements SStack private Object value ; private int top; /栈顶元素下标栈顶元素下标3.1.3 链式栈链式栈public class LinkedStack implements SStack private Node top;3.1.4 栈的应用栈的应用1.栈是嵌套调用机制的实现基础栈是嵌套调用机制的实现基础 2.使用栈以非递归方式实现递归算法使用栈以非递归方式实现递归算法 例例3.1 判断表达式中
4、圆括号是否匹配判断表达式中圆括号是否匹配例例3.2 使用栈计算表达式的值。使用栈计算表达式的值。中缀表达式中缀表达式1+2*(3-4)+51.将中缀表达式转换为后缀表达式将中缀表达式转换为后缀表达式2.后缀表达式求值后缀表达式求值 3.2 队列队列3.2.1 队列抽象数据类型队列抽象数据类型3.2.2 顺序队列顺序队列3.2.3 链式队列链式队列3.2.4 队列的应用队列的应用3.2.1 队列抽象数据类型队列抽象数据类型队列(队列(queue)是一种特殊的线性表,其插入和删除)是一种特殊的线性表,其插入和删除操作分别在线性表的两端进行。操作分别在线性表的两端进行。public interfac
5、e QQueue /队列接口队列接口 boolean isEmpty(); /判断队列是否为空判断队列是否为空 boolean enqueue(E element); /入队入队 E dequeue(); /出队出队 3.2.2 顺序队列顺序队列1.顺序队列,假溢出顺序队列,假溢出 2.顺序循环队列顺序循环队列 front=(front+1) % length;rear=(rear+1) % length;3.顺序循环队列类顺序循环队列类 public class SeqQueue implements QQueue private Object value; private int fron
6、t,rear; /队列头尾下标队列头尾下标3.2.3 链式队列链式队列public class LinkedQueue implements QQueue /链式队列类链式队列类 private Node front, rear; 3.2.4 队列的应用队列的应用例例3.3 求解素数环问题。求解素数环问题。 素数:质数(素数:质数(prime number)又称素数,有无)又称素数,有无限个。一个大于限个。一个大于1的的自然数自然数,除了,除了1和它本身外,和它本身外,不能被其他自然数不能被其他自然数整除整除(除(除0以外)的数称之为素以外)的数称之为素数(质数);否则称为数(质数);否则称为
7、合数合数。根据。根据算术基本定理算术基本定理,每一个比每一个比1大的整数,要么本身是一个质数,要么大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的质数在乘积中的顺序,那么写出来的形式是唯一的。最小的质数是。最小的质数是2。3.2.4 队列的应用队列的应用例例3.3 求解素数环问题。求解素数环问题。素数环:素数环: 将从将从1到到n这这n个整数围成一个圆环,若个整数围成一个圆环,若其中任意其中任意2个相邻的数字相加,结果均个相邻的数字相加,结果均为素数,那么这个环就成为素数环。为素数,那么这个环就成为素数环。使用顺序表和顺序队列来解素
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度绿色能源项目经营权转承包合同
- 2025年度河南定额计价水利工程项目施工合同标准版
- 2025年度空调设备研发与生产安装一体化合同
- 2025年度招投标与合同管理软件定制开发合同
- 现代企业管理模式创新策略与实践
- 2025年度新能源车辆货运保险专项合同
- 校园文化与空间布局关系研究
- 2025年度场地租赁与旅游项目合作开发合同
- 生物科技在农业领域的创新应用及发展趋势
- 2025年度建筑劳务居间合同纠纷起诉状编制
- 2025年1月浙江省高考政治试卷(含答案)
- 教体局校车安全管理培训
- 湖北省十堰市城区2024-2025学年九年级上学期期末质量检测综合物理试题(含答案)
- 导播理论知识培训班课件
- 行车起重作业风险分析及管控措施
- 2025年上半年重庆三峡融资担保集团股份限公司招聘6人高频重点提升(共500题)附带答案详解
- 20以内加减法口算题(10000道)(A4直接打印-每页100题)
- 板带生产工艺5(热连轧带钢生产)课件
- 2022年同等学力英语考试真题及详解
- 深度配煤掺烧方案
- 中药雾化吸入操作评分标准
评论
0/150
提交评论