Data Structure#

Abstract Data Type(抽象数据类型ADT)#

抽象数据类型 = 数据类型 + 操作, 是抽象的,是一种逻辑上的概念,不是具体的实现。

以下内容来自维基百科 https://en.wikipedia.org/wiki/Abstract_data_type

在计算机科学中,抽象数据类型(ADT)是一种数据类型的数学模型。从用户的角度来看,抽象数据类型是通过其行为(语义)来定义的,具体而言,是关于可能的值、该类型数据的可能操作以及这些操作的行为。这种数学模型与数据结构相对应,数据结构是数据的具体表示,是实现者而非用户的观点。

正式地,ADT可以被定义为“一类对象,其逻辑行为由一组值和一组操作定义”;这类似于数学中的代数结构。不同作者对于“行为”的含义有所不同,正式行为规范的两种主要类型是公理(代数)规范和抽象模型;它们分别对应于抽象机器的公理语义和操作语义。有些作者还包括计算复杂度(“成本”),包括时间(计算操作)和空间(表示值)方面的成本。实际上,许多常见的数据类型不是ADT,因为抽象不是完美的,用户必须注意诸如算术溢出之类的问题,这是由于表示方式引起的。例如,整数通常作为固定宽度的值(32位或64位二进制数)存储,因此如果超过最大值,则会出现整数溢出。

ADT是计算机科学中的理论概念,用于算法、数据结构和软件系统的设计和分析,并不对应于计算机语言的特定功能。然而,各种语言功能与ADT的某些方面相对应,很容易与ADT混淆;这些包括抽象类型、不透明数据类型、协议和按合同设计。ADT最初由Barbara Liskov和Stephen N. Zilles在1974年提出,作为CLU语言开发的一部分

Data Structure (数据结构)#

数据结构 = 数据类型 + 数据类型的存储方式, 是具体的,可以被计算机实现的和使用的。

https://en.wikipedia.org/wiki/Data_structure

常用的数据结构#

../_images/sum_of_data_structure.PNG
  • Array/List

  • Linked List

  • Hash Table

  • Queue

  • Stack

  • Tree

  • Graph