一、结构性数据结构
一个具体的数据结构就是一个二元组
D = (E,R)
其中 E 是数据结构 D 的元素集合,而 R∈E * E 是 D 的元素之间的某种关系。
总结出一批特别有用的典型数据结构:
- 集合结构:其数据元素之间没有需要关注的明确关系,也就是说关系R是空集。
这样的数据结构也就是其元素的集合,只是把一组数据元素包装成一个整体。这是最简单的一类数据结构。
- 序列结构(线性结构):其数据元素之间有一种明确的先后关系(顺序关系)。其特点是每个元素只有(最多)一个后继。
存在一个排位在最前的元素,除了最后的元素外,每个元素都有一个唯一的后继元素,所有元素排列成一个线性序列。关系R就是这里的线性顺序关系。
序列结构还有一些变形,如循环结构和ρ形结构。
圆圈表示数据元素,箭头表示元素之间的关系,说明这种关系是有方向的。
- 层次结构:其数据元素分属于一些不同的层次,一个上层元素可以关联着一个或者多个下层元素,关系R形成一种明确的层次性,只从上层到下层(通常也允许跨层次)。
- 树形结构:层次结构中最简单的一种关系是树形关系,其特点是在一个属性结构中只有一个最上层数据元素,称为根,其余元素都是根的直接或间接关联的下层元素。
进一步说,除根元素之外的每个元素,都有且仅有一个上层元素与之关联。
- 图结构:数据元素之间可以有任意复杂的相互联系。
二、功能性数据结构
包括栈、队列、优先队列、字典等。
这些结构都支持以某一套方式存储和访问元素(包括删除元素)