本篇文章简单的讲解下表、栈、队列。
首先先了解一下什么是抽象数据类型。
它是这么定义的:
抽象数据类型(abstract data type,即ADT)是带有一组操作的一些对象的集合。
那么ADT怎么理解呢? 首先你只需要记住表、集合、图以及与他们各自的操作一起形成的对象都可以被看做抽象数据类型.
这就跟整型、实数、布尔型都是数据类型一样.
简单来说,ADT是一种设计决策,它是一个广泛的概念.是一个抽象的东西,并没有告诉我们要怎么实现它.
数据结构也是它的一部分.
在《数据结构与算法分析》一书中的定义是:“数据结构是ADT(抽象数据类型Abstract Data Type) 的物理实现。”
抽象数据类型描述的一般形式如下:
ADT 抽象数据类型名称 {
数据对象:
……
数据关系:
……
操作集合:
操作名1:
……
……
操作名n:
}
你看数据关系和数据对象不就是代表着数据结构吗?
而ADT多了个什么呢?多了一个操作集合是把。
抽象数据类型可用以下三元组表示:(D,S,P)。D是数据对象,S是D上的关系集,P是对D的基本操作集。
数据结构可用以下二元组表示:(D,S),即两个集合,D是数据对象,S是D上的关系集.
这就不难理解为什么数据结构是抽象数据类型的具体实现了。
ADT包含了数据结构,数据结构是ADT的一部分.所以说数据结构实现了ADT.
在这里很容易就想成了ADT实现数据结构.
根据抽象数据类型描述的一般形式
其实我们把基本的数据结构+方法.那么这又是另一种ADT了.