文档介绍:目标
在本章中,你将学到:
识别堆栈的特性
实施堆栈
运用堆栈来解决编程问题
1
精选编辑ppt
让我们来玩Rummy(拉米纸牌)的游戏。
堆栈
7
7
7
7
7
7
7
7
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
2
精选编辑ppt
什么是堆栈?
堆栈就是一个只能访问其末尾数据的数据集,这一端也叫做顶部。
数据仅能在顶部进行插入和删除操作。
最新插入的数据将被最先删除。
因此,堆栈也被称为后进先出数据结构(Last-In-First-Out)。
定义一个堆栈
3
精选编辑ppt
下列两个基本操作可用于堆栈上:
PUSH(推)
POP(取出)
识别可在堆栈上进行的操作
PUSH:它是在堆栈顶部插入新元素的过程。
Empty Stack
1
Push an
Element 1
4
精选编辑ppt
PUSH:它是在堆栈顶部插入新元素的过程。
识别可在堆栈上进行的操作(续)
1
Push an
Element 2
2
Push an
Element 3
3
5
精选编辑ppt
POP:它是从堆栈顶部删除元素的过程。
识别可在堆栈上进行的操作(续)
1
POP an
Element
3
2
3
POP an
Element
2
6
精选编辑ppt
堆栈中的元素按 ___________基础进行添加和删除。
课间思考
答案:
LIFO
7
精选编辑ppt
列出现实生活中一些基于LIFO原则的实例。
课间思考
答案:
一堆书籍:假设有一堆叠在一起的书籍。当你想取出一本书籍时,必须先取出上面的其他书籍。类似地,当你放入另一本书时,将会放在这堆书籍的顶部。
一堆盘子:第一个盘子放在最底部,然后第二个盘子放在第一个盘子上边,第三个盘子则放在第二个盘子上边,依此类推。一般来说,如果你想在这堆盘子上再添加新的盘子,你必须得把新盘子放在顶部。类似地,如果你要移走一个盘子,也必须先移走顶部的盘子。
手上的手镯:当一个人戴着手镯时,只能先取下最后戴上的手镯。
8
精选编辑ppt
你需要开发一个方法以检查算术表达式中的圆括号是否正确被嵌套。
你如何解决此问题?
你可以通过使用堆栈很容易地解决此问题。
实施堆栈
9
精选编辑ppt
考虑一个示例。
假定表达式为:
{(a + b) × (c + d) + (c × d)]}
从左到右检查此表达式。
第一个检查到的条目是‘{’,它是一个左括号。
将它添加到堆栈中。
{
{(a + b) × (c + d) + (c × d)]}
实施堆栈(续)
10
精选编辑ppt