第3章1栈和队列 (数据结构教程PPT课件).ppt
《第3章1栈和队列 (数据结构教程PPT课件).ppt》由会员分享,可在线阅读,更多相关《第3章1栈和队列 (数据结构教程PPT课件).ppt(22页珍藏版)》请在三一办公上搜索。
1、第3章 栈和队列,本章主要介绍以下内容:栈的概念、存储结构及其基本操作队列的概念、存储结构及其基本操作栈与队列的应用举例,退出,诚昊工作室,3.1 栈3.2 栈的应用举例3.3 队列3.4 队列的应用举例,3.1 栈,3.1.1 栈的定义 栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。如下所示:进行插入和删除的一端是浮动端,通常被称为栈顶,并用一个“栈顶指针”指示;而另一端是固定端,通常被称为栈底。我们经常将栈用下图3-1的形式描述:,a1,a2,a3,.,an 插入和删除端,图 3-1,结论:后进先出(Last In First Out),简称为LIF
2、O线性表。举例1:家里吃饭的碗,通常在洗干净后一个一个地落在一起存放,在使用时,若一个一个地拿,一定最先拿走最上面的那只碗,而最后拿出最下面的那只碗。举例2:死胡同。举例3:对一栈,给定的输入项目A,B,C,若输入的顺序是A,B,C,试给出全部的可能的输出序列。下面我们先给出栈结构的基本操作:(1)初始化栈 Init_Stack(S)(2)入栈 Push_Stack(S,x)(3)出栈 Pop_Stack(S)(4)获取栈顶元素内容 Top_Stack(S)(5)判断栈是否为空 Empty_Stack(S),3.1.2 栈的顺序存储 栈的顺序存储结构是用一组连续的存储单元依次存放栈中的每个数据
3、元素,并用起始端作为栈底。类型定义如下所示:#define MAXSIZE 100 typedef struct datatype dataMAXSIZE;int top;SeqStack 定义一个指向顺序栈的指针:SeqStack*s;,基本操作算法:置空栈:首先建立栈空间,然后初始化栈顶指针。SeqStack*Init_SeqStack()SeqStack*s;s=malloc(sizeof(SeqStack);s-top=-1;return s;判空栈 int Empty_SeqStack(SeqStack*s)if(s-top=-1)return 1;else return 0;,图
4、3-2,入栈int Push_SeqStack(SeqStack*s,datatype x)if(s-top=MAXSIZE-1)return 0;/*栈满不能入栈*/else s-top+;s-datas-top=x;return 1;出栈 int Pop_SeqStack(SeqStack*s,datatype*x)if(Empty_SeqStack(s)return 0;/*栈空不能出栈*/else*x=s-datas-top;s-top-;return 1;/*栈顶元素存入*x,返回*/,取栈顶元素 datatype Top_SeqStack(SeqStack*s)if(Empty_S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章1栈和队列 数据结构教程PPT课件 队列 数据结构 教程 PPT 课件

链接地址:https://www.31ppt.com/p-2104425.html