逻辑上的数据结构反映成分数据之间的逻辑关系即
逻辑结构
,而物理上的数据结构反映成分数据在计算机内部的存储安排即
存储结构
。
常见的
逻辑结构有:线性结构,非线性结构(集合结构,树状结构,网络结构)。
(1)
线性结构
:数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。eg:线性表,栈,队列,双队列,数组,串。
(2) 非线性结构:其逻辑特征是一个节点元素可能对应多个直接前驱和多个直接后继。eg: 二维数组,多维数组,广义表,树(二叉树等),图。
常见的存储结构有: 顺序存储 , 链式存储 , 索引存储 ,散列存储 。
(1)顺序存储结构:逻辑上相邻的节点存储在物理位置上相邻的存储单元中。
(2)链式存储结构:逻辑上相邻、物理上不连续;
(3)索引存储结构:除建立存储节点信息外,还建立附加的索引表来标识节点的地址。
(4)散列存储结构:根据节点的关键字直接计算出该节点的存储地址。eg:哈希表。
链式存储结构的特点:
a. 比顺序存储结构的存储密度小 (每个节点都由数据域和指针域组成,所以相同空间内顺序比链式存储更多)。
b. 逻辑上相邻的节点物理上不必相邻。
c. 插入、删除灵活 (不必移动节点,只要改变节点中的指针)。
d. 查找结点时链式存储要比顺序存储慢。
e. 每个节点是由数据域和指针域组成。
存储结构是数据的逻辑结构用计算机语言的实现,常见的存储结构有:顺序存储, 链式存储, 索引存储,以及散列存储 。其中散列所形成的存储结构叫 散列表(又叫哈希表),因此哈希表也是一种存储结构。栈只是一种抽象数据类型,是一种逻辑结构,栈逻辑结构对应的顺序存储结构为顺序栈,对应的链式存储结构为链栈,循环队列是顺序存储结构,链表是线性表的链式存储结构。