数据结构的一些介绍

91 阅读2分钟

数据结构

  • 数据元素不是孤立出现的,元素之间有着不同关系,这些关系就是结构
  • 相互之间存在一种或多种特定关系的数据元素集合

包括的一些内容

  • 数据元素之间的逻辑关系,也称为(逻辑结构\color{red}{逻辑结构}
  • 数据元素及其关系在内存中的表示(映像),称为数据的物理结构\color{red}{物理结构}存储结构\color{red}{存储结构}
  • 数据的运算和实现,即对数据元素可以施加的操作以及这些操作在相应的存储结构上的实现。

逻辑结构

  • 描述数据元素之间的逻辑关系
  • 与数据的存储无关,独立于计算机
  • 从具体问题中抽象出来的数学模型

物理结构(存储结构)

  • 数据元素及其关系在计算机存储器中的结构(存储方式)
  • 是数据结构在计算机中的表示

逻辑结构与存储结构的关系

  • 存储结构是逻辑关系的映象与元素本身的映象
  • 逻辑结构是数据结构的抽象,存储结构是数据结构的实现
  • 两者综合,建立了数据元素之间的结构关系。

逻辑结构的种类

划分方法一

  • 线性结构\color{orange}{线性结构}

有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。

例如:线性表、栈、队列、串\color{#11a2ee}{线性表、栈、队列、串}

  • 非线性结构\color{orange}{非线性结构}

一个结点可能有多个直接前趋和直接后继。

例如:树、图\color{#11a2ee}{树、图}

划分方法二 :四类基本逻辑结构

  • 集合结构\color{orange}{集合结构}

结构中的数据之间除了同属于一个集合的关系外,无任何其它关系。

  • 线性结构\color{orange}{线性结构}

结构中的数据元素之间存在着一对一的线性关系。

  • 树形结构\color{orange}{树形结构}

结构中的数据元素之间存在着一对多的层次关系。

  • 网状结构\color{orange}{网状结构}

结构中的数据元素之间存在着多对多的任意关系。

存储结构的种类

  • 顺序存储结构\color{#ff502e}{顺序存储结构}

用一组连续\color{#167ef7}{连续}的存储单元依次\color{#167ef7}{依次}存储数据元素,数据元素之间的逻辑关系由元素的存储位置\color{#167ef7}{存储位置}来表示

C语言中用数组来实现顺序存储结构

char s[2][6] = {"hello","world"}
  • 链式存储结构\color{#ff502e}{链式存储结构}

用一组任意\color{#167ef7}{任意}的存储单元存储数据元素,数据元素之间的逻辑关系用指针\color{#167ef7}{指针}来表示

C语言中用指针来实现链式存储结构

指针存储的是下一个元素的地址

char *p  //p 就是保存地址的指针
  • 索引存储结构\color{#ff502e}{索引存储结构}
  • 散列存储结构\color{#ff502e}{散列存储结构}