武汉理工大学:《数据结构》 第三章 栈与队列

第三章栈与队列 3.1概述 栈与队列是两种特殊的线性表。即:在一般线性表的 操作时,插入或删除结点的位置是任意的,在表的中 间或两端都可以进行插入或删除操作,这样,每进行 个结点的插入或删除时必须先要定位(确定其被执 行操作结点的地址),因此实现操作比较费时。 而作为限定性的线性表栈和队列,其主要特点 是限定了操作位置,即不能随意在表的任意结点上进 行插入或删除操作而只能在表的一端或两端进行操作, 这样节省了定位时间并有特定规则。 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 第三章 栈与队列 3.1 概述 栈与队列是两种特殊的线性表。即:在一般线性表的 操作时,插入或删除结点的位置是任意的,在表的中 间或两端都可以进行插入或删除操作,这样,每进行 一个结点的插入或删除时必须先要定位(确定其被执 行操作结点的地址),因此实现操作比较费时。 而作为限定性的线性表—栈和队列,其主要特点 是限定了操作位置,即不能随意在表的任意结点上进 行插入或删除操作而只能在表的一端或两端进行操作, 这样节省了定位时间并有特定规则

栈 它是一种只能在表的一端进行插入(称为进栈) 或删除(称为岀栈)操作的线性表,显然,这是一种 先进后出或后进先出型结构的线性表 二队列 它是一种只能在表的一端进行插入(称为进队) 操作,表的另一端进行删除(称为出队)操作的线性 表,显然,这是一种先进先出型结构。 栈与队列在许多求解非数值计算问题的程序中要 用到,在很多场合对各数据的处理有先后顺序要求时 经常使用栈或队列作为数据的暂存器来实现,当先产 生的数据先处理,后产生的数据后处理时,则利用队 列作为暂存器实现;若先产生的数据后处理,后产生 的数据先处理时则利用钱作为暂存器实现
武汉理工大学华夏学院-信息工程 系 二 队列 它是一种只能在表的一端进行插入(称为进队) 操作,表的另一端进行删除(称为出队)操作的线性 表,显然,这是一种先进先出型结构。 栈与队列在许多求解非数值计算问题的程序中要 用到,在很多场合对各数据的处理有先后顺序要求时, 经常使用栈或队列作为数据的暂存器来实现,当先产 生的数据先处理,后产生的数据后处理时,则利用队 列作为暂存器实现;若先产生的数据后处理,后产生 的数据先处理时,则利用栈作为暂存器实现。 一 栈 它是一种只能在表的一端进行插入(称为进栈) 或删除(称为出栈)操作的线性表,显然,这是一种 先进后出或后进先出型结构的线性表

三、栈与队列的存储结构 栈与队列有顺序存储结构和链式存储结构两 种。用顺序存储的方法存储的栈或队列称为顺 序栈或顺序队列; 用链式存储的方法存储的栈或队列称为链 式栈或链式队列。 下面分别阐述。 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 栈与队列有顺序存储结构和链式存储结构两 种。用顺序存储的方法存储的栈或队列称为顺 序栈或顺序队列; 用链式存储的方法存储的栈或队列称为链 式栈或链式队列。 下面分别阐述。 三、栈与队列的存储结构

3.2栈 顺序栈 1.定义用顺序方法存储的栈称为顺序栈。 2.术语 栈顶允许进行操作的一端,称为栈顶。 栈底不允许进行操作的一端,称为栈底。 栈指针指向栈顶元素位置的一个整型变量,称 为栈指针。一般用top表示。 空栈栈中无元素的栈即栈指针指向零,即top=0 时的栈,称为空栈。 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 一、顺序栈 1. 定义 用顺序方法存储的栈称为顺序栈。 2. 术语 栈顶 允许进行操作的一端,称为栈顶。 栈底 不允许进行操作的一端,称为栈底。 栈指针 指向栈顶元素位置的一个整型变量,称 为栈指针。一般用top表示。 空栈 栈中无元素的栈即栈指针指向零,即top=0 时的栈,称为空栈。 3.2 栈

<心 3.顺序栈的描述 顺序栈一般用一个一维数组进行描述 且定义一个整型变量top作为栈指针。其 说明如下: 用C语彦描述为: #define n0 50 #define datatype datatype s/no/ Int top 定义的機构驷3所尔。 系
武汉理工大学华夏学院-信息工程 系 3. 顺序栈的描述 顺序栈一般用一个一维数组进行描述, 且定义一个整型变量top作为栈指针。其 说明如下: 定义的栈结构如图3-1所示。 用C语言描述为: #define n0 50 #define datatype datatype s[no]; int top;

进栈 no 出栈 栈顶 D C B mA-二栈底回 图3-1顺序栈示意图 <心D 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 A 3 n0 栈顶 图3-1顺序栈示意图 B C D · · · 栈底 进栈 2 1 0 出栈 top 3

4.顺序栈的操作 (1)构造一个空栈 设置(定义)一个数组后,将栈指针 置为零既可。top=-1 (2判断一个栈是否为空:top==-1? (3)判断一个栈是否为满 top==n0-1? (4)取栈J元素:W=stop] 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 4. 顺序栈的操作 (1)构造一个空栈 设置(定义)一个数组后,将栈指针 置为零既可。 top=-1 (2)判断一个栈是否为空:top==-1? (3)判断一个栈是否为满: top==n0-1? (4)取栈顶元素: w=s[top]

(5)进栈(又称压入)进栈就是在栈顶位 置往栈中添加元素。 操作原则是:首先判栈满否?若满,则上 溢;(这是要避免的)否则,可以进栈。进 栈时是先移动指针〔top=top+1)再进栈 例如,设有一栈区为s,n0=3,将ABC三个 元素依次进栈操作过程为:图3-2所示 图3-2顺序 栈进栈示意 图( top 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 (5) 进栈(又称压入)进栈就是在栈顶位 置往栈中添加元素。 操作原则是: 首先判栈满否?若满,则上 溢;(这是要避免的)否则,可以进栈。进 栈时是先移动指针(top=top+1)再进栈。 例如,设有一栈区为s ,n0=3 ,将A,B,C三个 元素依次进栈操作过程为: 图3-2所示 初态 top -1 栈 图3-2顺序 栈进栈示意 图

栈 A进栈 A top 栈 B进栈 B A top 栈 C进 B fon 2 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 A进栈 A top 0 栈 B进栈 B A top 1 栈 C进栈 C B A top 2 栈

图3-3进栈算法流程图 图3-出栈算法流程图 匚给x赋值 top top==nO 出栈操作* top-top+ /*栈空无 X=STope /*栈上溢错 元素出栈* SIt topI=X top=top /*进栈完成* /*出栈完成* 返回 返回 武汉理工大学华夏学院-信息工程 系
武汉理工大学华夏学院-信息工程 系 图3-3进栈算法流程图 top=top+1 S[top]=x /*进栈完成*/ /*栈上溢错*/ 给X赋值 返回 /*栈空无 元素出栈*/ X=S[top] top=top-1 /*出栈完成*/ 返回 /*出栈操作*/ 图3-5出栈算法流程图 是 是 top= =n0-1 top= = -1
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 武汉理工大学:《数据结构》 第七章 查找.ppt
- 武汉理工大学:《数据结构》 第一章 绪论.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第九章 多模态人机交互技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第八章 多媒体信息管理技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第七章 多媒体通信网络技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第六章 多媒体编程技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第五章 多媒体软平台.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第十一章 多媒体应用.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第十章 分布式多媒体处理技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)复习题.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第四章 多媒体硬基础.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第三章 多媒体数据压缩技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)霍夫曼编码、预测编码、统计编码、变换编码.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第一章 绪论、第二章 媒体与媒体技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第一章 绪论、第二章 媒体与媒体技术、第三章 多媒体数据压缩技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第一章 绪论、第二章 媒体与媒体技术.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第二版)第1-第7章.ppt
- 《autocad2007快速入门》学习资料(共十一章).pdf
- 软件工程师培训系列教材:《Java语言基础》电子课件.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第九章 结构体与共用体.ppt
- 武汉理工大学:《数据结构》 第二章 线性表.ppt
- 武汉理工大学:《数据结构》 第五章 树形结构.ppt
- 武汉理工大学:《数据结构》 第八章 排序.ppt
- 武汉理工大学:《数据结构》 第六章 图.ppt
- 武汉理工大学:《数据结构》 第四章 串、数组与广义表.ppt
- 《ASP程序设计》 源代码.doc
- 《ASP程序设计》 第一章 ASP基础.ppt
- 《ASP程序设计》 第二章 HTML基础.ppt
- 《ASP程序设计》 第三章 VBScript脚本语言.ppt
- 《ASP程序设计》 第四章 Request和Response对象.ppt
- 《ASP程序设计》 第五章 Session、Application和Server对象.ppt
- 《ASP程序设计》 第六章 ASP组件.ppt
- 《ASP程序设计》 第七章 关系数据库基础.ppt
- 《ASP程序设计》 第八章 ADO对象.ppt
- 《ASP程序设计》 第就章 设计实例.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第一章 绪论 1.1 数据库系统概述 1.2 数据模型.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第一章 绪论 1.2.3 最常用的数据模型 1.2.4 层次模型 1.2.5 网状模型 1.2.6 关系模型.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第二章 关系数据库 2.1 关系模型概述 2.2 关系数据结构 2.3 关系的完整性.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第二章 关系数据库 2.4 关系代数 2.5 关系演算 2.6 小结.ppt
- 中国人民大学:《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第三章 关系数据库标准语言SQL 3.1 SQL概述 3.2 数据定义 3.3 查询.ppt