• 1.摘要
  • 2.基本信息
  • 3.定义
  • 4.研究对象
  • 4.1.数据的逻辑结构
  • 4.2.数据的物理结构
  • 4.3.数据存储结构
  • 5.分类
  • 5.1.线性结构
  • 5.2.非线性结构
  • 6.常用的数据结构
  • 6.1.数组Array
  • 6.2.栈Stack
  • 6.3.队列Queue
  • 6.4.链表LinkedList
  • 6.5.树Tree
  • 6.6.图Graph
  • 6.7.堆Heap
  • 6.8.散列表Hash
  • 7.常用算法
  • 8.参考资料

数据结构

12
计算机存储、组织数据方式

数据结构(data structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合,往往同高效的检索算法和索引技术有关1。大多数数据结构都由数列、记录、可辨识联合、引用等基本类型构成。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。

数据结构意味着接口或封装,一个数据结构可被视为两个函数之间的接口,或者是由数据类型联合组成的存储内容的访问方法封装。

基本信息

  • 中文名

    数据结构

  • 外文名

    data structure2

  • 解释

    计算机存储组织数据的方式

  • 具体指向

    特定关系的数据元素的集合

  • 有关技术

    检索算法和索引技术

定义

数据结构

数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。“结构”就是指数据元素之间存在的关系,分为逻辑结构和存储结构3

数据的逻辑结构和物理结构是数据结构的两个密切相关的方面,同一逻辑结构可以对应不同的存储结构。算法的设计取决于数据的逻辑结构,而算法的实现依赖于指定的存储结构3

数据结构的研究内容是构造复杂软件系统的基础,它的核心技术是分解与抽象。通过分解可以划分出数据的3个层次;再通过抽象,舍弃数据元素的具体内容,就得到逻辑结构。类似地,通过分解将处理要求划分成各种功能,再通过抽象舍弃实现细节,就得到运算的定义。上述两个方面的结合可以将问题变换为数据结构。这是一个从具体(即具体问题)到抽象(即数据结构)的过程。然后,通过增加对实现细节的考虑进一步得到存储结构和实现运算,从而完成设计任务。这是一个从抽象(即数据结构)到具体(即具体实现)的过程4

研究对象

数据的逻辑结构

指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后间关系,而与他们在计算机中的存储位置无关。逻辑结构包括:5

1.集合:数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系5

2.线性结构:数据结构中的元素存在一对一的相互关系5

3.树形结构:数据结构中的元素存在一对多的相互关系5

4.图形结构:数据结构中的元素存在多对多的相互关系5

数据的物理结构

指数据的逻辑结构在计算机存储空间的存放形式5

数据的物理结构是数据结构在计算机中的表示(又称映像),它包括数据元素的机内表示和关系的机内表示。由于具体实现的方法有顺序、链接、索引、散列等多种,所以,一种数据结构可表示成一种或多种存储结构5

数据元素的机内表示(映像方法): 用二进制位(bit)的位串表示数据元素。通常称这种位串为节点(node)。当数据元素有若干个数据项组成时,位串中与各个数据项对应的子位串称为数据域(data field)。因此,节点是数据元素的机内表示(或机内映像)5

关系的机内表示(映像方法):数据元素之间的关系的机内表示可以分为顺序映像和非顺序映像,常用两种存储结构:顺序存储结构和链式存储结构。顺序映像借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。非顺序映像借助指示元素存储位置的指针(pointer)来表示数据元素之间的逻辑关系5

数据存储结构

数据的逻辑结构在计算机存储空间中的存放形式称为数据的物理结构(也称为存储结构)。一般来说,一种数据结构的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序存储、链式存储、索引存储和哈希存储等6