北京化工大学:《数据结构》课程PPT教学课件(C语言描述)第三章 栈和队列

第三章栈和队列
第三章 栈和队列

3.1栈 3.2栈的应用举例 3.3队列 3.4队列的应用举例
3.1 栈 3.2 栈的应用举例 3.3 队列 3.4 队列的应用举例

栈(Stack) 只允许在表的一端插入和删除的线性表 ·允许插入和删除 出栈 入栈 的一端称为栈顶 top (top),另一端称 为栈底(bottom) 特点: 后进先出(LIFO) bottom
◼ 只允许在表的一端插入和删除的线性表 ◼ 允许插入和删除 的一端称为栈顶 (top),另一端称 为栈底(bottom) ◼ 特点: 后进先出 (LIFO) 栈 ( Stack ) 出栈 入栈 a1 an an-1 top bottom

举例1:家里吃饭的碗,通常在洗干净后一个一个 地落在一起存放,在使用时,若一个一个 地拿,一定最先拿走最上面的那只碗,而 最后拿出最下面的那只碗。 举例2:在建筑工地上,使用的砖块从底往上一层 一层地码放,在使用时,将从最上面一层 一层地拿取
举例1:家里吃饭的碗,通常在洗干净后一个一个 地落在一起存放,在使用时,若一个一个 地拿,一定最先拿走最上面的那只碗,而 最后拿出最下面的那只碗。 举例2:在建筑工地上,使用的砖块从底往上一层 一层地码放,在使用时,将从最上面一层 一层地拿取

由此可知,最先放入栈中元素的元素在 栈底,最后放入的元素在栈顶,而删除元 素刚好相反,最后放入的元素最先删除, 最先放入的元素最后删除
由此可知,最先放入栈中元素的元素在 栈底,最后放入的元素在栈顶,而删除元 素刚好相反,最后放入的元素最先删除, 最先放入的元素最后删除

1.初始化栈:Init_Stack(S) 将栈S置为一个空栈(不含任何元素)。 栈的基本运算 2.判栈空:Empty._Stack(S) 判断栈S是否为空,若为空,返回值为TRUE,否则返回值为FALSE。 3.入栈:Push_Stack(S,x) 在栈S的顶部插入新元素X,也称为“进栈”、“插入”、“压 入”。 4.出栈:Pop_Stack(S) 删除栈S中的栈顶元素,也称为”退栈”、“删除”、“弹出”。 5.取栈顶元素:Top_Stack(S) 取栈S中栈顶元素作为结果返回,栈不变化
1. 初始化栈:Init_Stack(S) 将栈S置为一个空栈(不含任何元素)。 2. 判栈空: Empty_Stack(S) 判断栈S是否为空,若为空,返回值为TRUE,否则返回值为FALSE。 3. 入栈:Push_Stack( S, x ) 在栈S的顶部插入新元素 x ,也称为 “进栈” 、 “插入” 、 “压 入”。 4. 出栈: Pop_Stack(S) 删除栈S中的栈顶元素,也称为”退栈” 、 “删除” 、 “弹出”。 5. 取栈顶元素: Top_Stack(S) 取栈S中栈顶元素作为结果返回,栈不变化。 栈 的 基 本 运 算

栈的存储结构 顺序栈 用一组地址连续的存储单元依次存放栈中的每个 数据元素,并用起始端作为栈底。 由于栈操作的特殊性,附设一个栈顶指针top来动 态地表示栈顶元素在顺序栈中的位置。 0123456789 MAXSIZE-1 data 1top(栈空)
栈的存储结构 一、 顺 序 栈 用一组地址连续的存储单元依次存放栈中的每个 数据元素,并用起始端作为栈底。 由于栈操作的特殊性,附设一个栈顶指针top来动 态地表 示栈顶元素在顺序栈中的位置。 0 1 2 3 4 5 6 7 8 9 MAXSIZE-1 top (栈空) data

顺序栈定义如下: #define MAXSIZE 1024 typedef struct stack { datatype data[MAXSIZE]; int top; }SeqStack;
顺序栈定义如下: #define MAXSIZE 1024 typedef struct stack { datatype data[MAXSIZE]; int top; }SeqStack;

top b top→ L L top→ 空栈 a入栈 b入栈 gf top e top→ e d d top→ d C C C b b b L a L Cl,e入栈 f入栈溢出 E出栈
top 空栈 a 入栈 b 入栈 a a b a b c d e c,d,e 入栈 a b c d e f 入栈溢出 a b d E出栈 c top top top top top f

top→ b top b L a top→ d出栈 C出栈 b出栈 top→a出栈 空栈←一top==0
c 出栈 b 出栈 a a 出栈 空栈 a b d 出栈 c a b top top top top top= =0
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 北京化工大学:《数据结构》课程PPT教学课件(C语言描述)第二章 线性表.ppt
- 北京化工大学:《数据结构》课程PPT教学课件(C语言描述)第一章 绪论(负责人:侯虹).ppt
- 北京化工大学:《大学计算机基础》课程电子教案(PPT教学课件)第7章 多媒体技术基础.ppt
- 北京化工大学:《大学计算机基础》课程电子教案(PPT教学课件)第6章 数据库基础.ppt
- 北京化工大学:《大学计算机基础》课程电子教案(PPT教学课件)第5章 程序设计与软件工程基础.ppt
- 北京化工大学:《大学计算机基础》课程电子教案(PPT教学课件)第4章 计算机网络技术基础.ppt
- 北京化工大学:《大学计算机基础》课程电子教案(PPT教学课件)第3章 操作系统.ppt
- 北京化工大学:《大学计算机基础》课程电子教案(PPT教学课件)第2章 计算机系统结构与硬件基础.ppt
- 北京化工大学:《大学计算机基础》课程电子教案(PPT教学课件)第1章 计算机与信息技术概述.ppt
- 北京化工大学:《大学计算机基础》课程教案资源(教案讲义)教学大纲 The Foundation of University Computer(负责人:朱群雄).doc
- 中国人民大学:《程序设计实践》课程教学资源(讲稿)第11讲 Untangle Puzzle Game.pdf
- 中国人民大学:《程序设计实践》课程教学资源(讲稿)Fundamentals of Git.pdf
- 中国人民大学:《程序设计实践》课程教学资源(讲稿)第9讲 jQuery简介.pdf
- 中国人民大学:《程序设计实践》课程教学资源(讲稿)第7讲 Canvas游戏.pdf
- 中国人民大学:《程序设计实践》课程教学资源(讲稿)第6讲 Javascript HTML DOM.pdf
- 中国人民大学:《程序设计实践》课程教学资源(讲稿)第5讲 Javascript入门.pdf
- 中国人民大学:《程序设计实践》课程教学资源(讲稿)第3讲 CSS层叠样式表.pdf
- 中国人民大学:《程序设计实践》课程教学资源(讲稿)第2讲 HTML速成(主讲:孙辉).pdf
- 中国人民大学:《程序设计实践》课程教学资源(讲稿)第1讲 Web编程介绍(基于Web的软件开发及HTML5基础).pdf
- 私立华联学院:《云计算技术与应用基础》课程教学资源(PPT课件)Chap08 云应用.ppt
- 北京化工大学:《数据结构》课程PPT教学课件(C语言描述)第五章 图.ppt
- 北京化工大学:《数据结构》课程PPT教学课件(C语言描述)第六章 查找.ppt
- 同济大学:《逻辑网络》课程教学资源(教学大纲)逻辑网络(中文,负责人:周俊鹤).doc
- 同济大学:《逻辑网络》课程教学资源(教学大纲)逻辑网络(英文)Logic networks.doc
- 同济大学:《逻辑网络》课程教学资源(试卷习题)考试样卷.doc
- 同济大学:《逻辑网络》课程电子教案(PPT课件)同步时序电路设计中的问题 Advanced design issue.ppt
- 同济大学:《逻辑网络》课程电子教案(PPT课件)寄存器与计数器 register and counters.ppt
- 同济大学:《逻辑网络》课程电子教案(PPT课件)异步时序电路分析与设计 Introduction to asynchronous circuits design.ppt
- 同济大学:《逻辑网络》课程电子教案(PPT课件)数字设计中的基本电路 Introduction to the circuits in digital design.ppt
- 长沙理工大学:《微机原理与接口技术》课程教学资源(大纲教案)微机原理与应用授课教案(负责人:叶青,打印版).pdf
- 《算法基础》课程教学资源(学习笔记)算法基础 课堂笔记.pdf
- 西安电子科技大学:《网络计算》课程PPT教学课件(Android Programming)Lecture 1 Introduction to Network Computing(主讲:栾浩).pptx
- 西安电子科技大学:《网络计算》课程PPT教学课件(Android Programming)Lecture 2 Introduction to Java and Object Oriented Programming.pptx
- 西安电子科技大学:《网络计算》课程PPT教学课件(Android Programming)Lecture 3 File structure and Layout.pptx
- 西安电子科技大学:《网络计算》课程PPT教学课件(Android Programming)Lecture 4 Activity, Intent and UI.pptx
- 西安电子科技大学:《网络计算》课程PPT教学课件(Android Programming)Lecture 5 Intent.pptx
- 西安电子科技大学:《网络计算》课程PPT教学课件(Android Programming)Lecture 6 List View and Custom View.pptx
- 西安电子科技大学:《网络计算》课程PPT教学课件(Android Programming)Lecture 7 Data Persistence.pptx
- 西安电子科技大学:《网络计算》课程PPT教学课件(Android Programming)Lecture 8 Multi-threading.pptx
- 西安电子科技大学:《网络计算》课程PPT教学课件(Android Programming)Lecture 9 Service and Broadcast Receiver.pptx