从不同的角度来看,数据结构分为逻辑结构和物理结构。
1 逻辑结构
逻辑结构是指数据对象中数据元素之间的相互关系。包括集合结构、线性结构、树状结构和网络结构。也可以统一分为线性结构和非线性结构。
1.1 线性结构
- 线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系;
- 线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的;
- 链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息;
- 线性结构常见的有:数组、队列、链表和栈。
1.2 非线性结构
是指数据元素之间存在一对多或多对多关系的数据结构,包括二维数组,多维数组,广义表,树结构,图结构。
总的来说,逻辑结构是针对具体问题的,是为了解决某个问题而选择一个合适的数据结构表示数据元素之间的逻辑关系。
2 物理结构
物理结构也称为存储结构,是指数据的逻辑结构在计算机中的存储形式。物理结构一般有四种:顺序存储,链式存储,散列,索引
2.1 顺序存储
顺序存储结构是把逻辑上相邻的数据元素存储在物理位置上相邻的存储单元中,其数据之间的逻辑关系与物理关系是一致的。
2.2 链式存储
链式存储结构是把数据元素存储在物理位置上的任意存储单元中,其数据之间的逻辑关系与物理关系没有严格的对应关系。
2.3 散列存储
散列存储,又称hash存储,是一种力图将数据元素的存储位置与关键码之间建立确定对应关系的查找技术。散列法存储的基本思想是:由节点的关键码值决定节点的存储地址。散列技术除了可以用于查找外,还可以用于存储。
2.4 索引存储
索引存储,除建立存储结点信息外,还建立附加的索引表来标识结点的地址。索引表由若干索引项组成。索引存储结构是用结点的索引号来确定结点存储地址,其优点是检索速度快,缺点是增加了附加的索引表,会占用较多的存储空间。
3 数据、数据元素、数据项、数据对象之间的关系
-
数据(data)—所有能输入到计算机中去的描述客观事物的符号
-
数据对象(Data Object):相同特性数据元素的集合,是数据的一个子集
-
数据元素(data element)—数据的基本单位,也称结点(node)或记录(record)
-
数据项(data item)—有独立含义的数据最小单位,也称域(field)
具体关系如下图所示:
reference