数据结构有多种维度进行分门别类
在物理存储上来分,有以下两种
-
顺序存储结构
这种数据结构在内存中是连续的,像数组。所以数组中根据下标查找元素可以一次性定位。
像栈、队列、树等,这些是逻辑上的结构,它们可以使用顺序存储结构(由数组来实现),也可以使用链式存储结构
-
链式存储结构
链表存储结构表示其数据结构在内存中并不是按顺序存储,它们的存储是散乱的,这些散乱的存储能连成一起的效果是通过在逻辑上实现(当时的存储数据中也存储了下一个数据的内存地址),典型的代表就是链表
在逻辑结构上来分有以下两种
-
线性结构
-
线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系,比如 a[1] = 10,即1这个索引的值只有10,没有其它可能,所以这就是一对一,即线性,固定的,称为线性结构
-
线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构
-
顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的,即内存地址是顺序存放,主要代表:数组
-
链式存储的线性表称为链表,链表中的存储元素不一定是连续的,即内存地址不是按顺序存放,元素节点中存放数据元素以及相邻元素的地址信息,主要代表:列表
-
-
线性结构常见的有:数组、队列、链表和栈
-
-
非线性结构
非线性结构包括:二维数组、多维数组,广义表,树结构、图结构