栈与队列 ppt课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业布置
1)栈的置空操作: clear( )
结束放映
2)栈的判空操作: 3)求栈的长度:
isEmpty( ) length( )
4)取栈顶元素操作: peek( )
Βιβλιοθήκη Baidu
5)入栈操作: 6)出栈操作:
push( x ) pop( )
3.1 栈
数据结构(Java语言描述)
3.1.2 栈的抽象数据类型描述
章节目录 2.栈的抽象数据类型的Java接口描述
结束放映 (2) 栈是“后进先出”的线性表(LIFO)或 “先 进后出”的线性表(FILO)
进
a0 a1 a2 … an-1
出
栈底
栈顶
3.1 栈
3.1.1 栈的概念
数据结构(Java语言描述)
章节目录
如下图所示的是铁路调度站形象地表
作业布置 示栈的“后进先出”特点。
结束放映
3.1 栈
3.1.1 栈的概念
栈的长度? top
栈顶元素? stackElem[top-1]
3.1 栈
数据结构(Java语言描述)
3.1.3 顺序栈及其基本操作的实现
章节目录 2.顺序栈类的描述(书P71-与P33顺序表类对照学习)
作业布置 结束放映
public class SqStack implements IStack {
…} …
}
3.1 栈
数据结构(Java语言描述)
2. 顺序栈类的描述(见教材P71)
…… 章节目录 public class SqStack implements IStack {
作业布置
// 入栈操作的函数 public void push( Object x) { …… }
结束放映
// 出栈操作的函数 public void pop ( ) { …… }
top= 0; }
} ……
3.1 栈
数据结构(Java语言描述)
2. 顺序栈类的描述(见教材P71)
…… 章节目录 public class SqStack implements IStack {
// 栈判空
作业布置
public boolean isEmpty( ) {
return top== 0;
public interface IStack{
作业布置
public void clear();
结束放映
public boolean isEmpty(); public int length();
public Object peek();
public void push(Object x) throws Exception;
Insert(n, x)
Delete(n-1)
队列
Insert(n, x)
Delete(0)
栈和队列是两种操作受限的线性表, 是两种常用的数据类型。
3.1 栈
3.1.1 栈的概念
数据结构(Java语言描述)
章节目录 作业布置
(1) 栈是仅限制在表尾进行插入和删除操作的特 殊线性表,限制操作的表尾端称为“栈顶”, 另一 端称为“栈底”
public Object pop(); }
实现此接口的方法有两种:
顺序栈 链栈
3.1 栈
数据结构(Java语言描述)
3.1.3 顺序栈及其基本操作的实现
章节目录 1. 顺序栈
非空栈 0 1 …… n-1
作业布置
stackElem a0 a1 … … an-1
结束放映
maxSize-1
top=n
空栈 0 1 2 ……
结束放映
} // 求栈数据元素个数函数
public int length( ) {
return top; } // 取栈顶元素的函数 public Object peek ( ) {
if (!isEmpty()) // 栈非空 return stackElem[top-1]; // 栈顶元素
else return null;
stackElem
……
maxSize-1
top=0
3.1 栈
数据结构(Java语言描述)
3.1.3 顺序栈及其基本操作的实现
章节目录 1. 顺序栈 0 1 …… n-1
作业布置 stackElem a0 a1 … … an-1
结束放映
思考 如下问题如何描述? 栈空条件? top==0
top=n
栈满条件? top==stackElem.length
数据结构(Java语言描述)
章节目录
思考题:
作业布置
结束放映
设有编号为1,2,3,4的四辆 列车,顺序进一个栈式结构的站台 ,具体写出这四辆列车开出车站的 所有可能的顺序。
3.1 栈
3.1.1 栈的概念
数据结构(Java语言描述)
章节目录 作业布置 结束放映
解答:
四辆车出站的所有可能顺序为:
1)1、2、3、4; 2)1、2、4、3; 3)1、3、2、4; 4)1、3、4、2; 5)1、4、3、2;
重点:
栈、队列的特点; 栈、队列基本操作的实现算法
难点:
栈、队列的应用
第三章 栈 与 队 列
数据结构(Java语言描述)
通常称,栈和队列是限定插入和删
章节目录 除只能在表的“端点”进行的线性表。
作业布置 结束放映
线性表
Insert(i, x) 0≤i≤n Delete(i) 0≤i≤n-1
栈
6)2、1、3、4; 7)2、1、4、3; 8)2、3、4、1; 9)2、3、1、4 ; 10)2、4、3、1;
11)3、2、1、4; 12)3、2、4、1; 13)3、4、2、1; 14)4、3、2、1。
3.1 栈
数据结构(Java语言描述)
3.1.2 栈的抽象数据类型描述 章节目录 1.基本操作
数 据 结 构(Java语言描述)
第三章 栈与队列
第三章 栈 与 队 列
章节目录 作业布置
3.1 栈
数据结构(Java语言描述)
教学内容
结束放映
3.2 队列
3.3 栈与队列的比较
3.4 栈与队列的综合应用举例
第三章 栈 与 队 列
数据结构(Java语言描述)
章节目录 作业布置 结束放映
教学重点与难点
// 输出函数(从栈顶到栈底) public void display () {
for (int i = top - 1; i >= 0; i--) System.out.print(stackElem[i].toString() + " ");
private Object[] stackElem;
private int top;
//构造一个容量为maxSize的空栈
public SqStack (int maxSize) { stackElem = new Object[maxSize];
} top = 0;
// 栈置空
public void clear( ) {