首页 > 其他 > 详细

chapter 4 栈和队列

时间:2020-08-20 12:39:33      阅读:79      评论:0      收藏:0      [点我收藏+]

本章重点

不同的结构类型

队列

优先级队列

解析算术表达式

本章涉及到三种数据存储类型:栈、队列和优先级队列。

首先讨论这几种结构和数组的区别;然后依次介绍每种结构。

最后一节将观察栈在解析算术表达式问题中的重要应用。

不同的结构类型

本章所讲的数据结构和算法和前面章节提到的有很大不同。

在开始详细讲解新的结构之前,先来看看其中的三个区别。

程序员的工具

数组是前面已经介绍过的数据存储结构,和本书后面将遇到的其他结构(链表、树等等)一样,

都适用于数据库应用中作数据记录。

它常用于记录那些对应于现实世界的对象和活动的数据,

如职员档案、目录和商务数据等等。这些结构便于数据的访问:他们易于进行插入、删除和查找特定数据项的操作。

然而,

本章要讲解的数据结构和算法更多的是作为程序员的工具来运用。

他们主要作为构思算法的辅助工具,而不是完全的数据存储工具。

这些数据结构的生命周期比那些数据类型的结构要短得多。

在程序操作执行期间,他们才被创建,通常用他们去执行某项特殊的任务;当任务完成之后,他们就被销毁。

受限访问

在数组中,若知道数据项的下标,便可以(立即)访问该数据项;或者通过顺序搜索数据项,访问到数组中的各个数据项。而在本章的数据结构中,访问,是受限制的,即,在特定时刻,只有一个数据项,可以被读取,或者被删除(除非作弊)

这些结构接口的设计增强了这种受限访问。访问其他数据项(理论上)是不允许的。

更加抽象

栈、队列和优先级队列是比数组和其他数据存储结构更为抽象的结构。主要通过接口对栈、队列和优先级队列进行定义,这些接口表明通过它们可以完成的操作,而它们的主要实现机制对用户来说是不可见的。

例如,栈的主要机制可以用数组来实现,本章的示例就是这样处理的;。。。。。

。。。。

栈实例2:分隔符匹配({})c数据结构也有类似实例

栈通常用于解析某种类型的文本串。通常,文本串是用计算机语言写的代码行,而解析他们的程序就是编译器。

为了解释清楚,下面看一个检查用户输入的一行文本中分隔符的程序。

文本不一定是实际的java代码(也可以是),但它需要使用和java一样的分隔符。分隔符包括大括号{}中括号【】和小括号(),每个左分隔符需要和右分隔符匹配,

 

chapter 4 栈和队列

原文:https://www.cnblogs.com/yangzihong/p/13534277.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!