数据结构简介

前言

数据结构是计算机内部组织、存储数据的方式,是相互之间存在一种或者多种关系的数据元素的集合。数据结构是一个二元组(D,R),其中D是数据元素的有限集,R是D上关系的集合。

分类

根据数据结构的定义,其可以按照数据元素之间的关系和内部物理存储来分类。
按照逻辑结构可以分为:

  • 集合:数据元素之间除同属一种类型外不存在其他关系
  • 线性结构:数据元素之间存在一对一的关系
  • 树形结构:数据元素之间存在一对多的关系
  • 图形结构:数据结构之间存在多对多的关系

按照物理结构(又称存储结构)可分为:

  • 顺序存储:数据元素物理内存中按照顺序连续存放,每个存储节点只含有一个元素,相对位置即反应了元素之间的关系
  • 链式存储:数据元素在物理内存不要求空间连续,其每个节点除包含本身存储的数据外还需要包括一组指针(指针数量>=1),其指向反映数据元素之间的逻辑关系
  • 索引存储:数据元素存放在一组地址连续的空间中,同时还需要建立一个索引表用于索引存储节点或存储区间的位置
  • 散列存储:通过散列函数和冲突解决方法,将关键字散列在有限的地址空间中,散列函数计算出的值解释为关键字的元素存储位置

常见数据结构

  • 数组(Array)
  • 链表(Linked List)
  • 堆栈(Stack)
  • 队列(Queue)
  • 树(Tree)
  • 图(Graph)
  • 堆(Heap)
  • 散列表(Hash)

抽象数据类型(ADT)

抽象数据类型(Abstract Data Type,简称ADT)是指一个数学模型以及定义在该模型上的一组操作。诸如表、集合、图和他们的操作一起可以看作是抽象数据类型。