数据结构的三要素(逻辑结构、存储结构与数据的运算)

数据结构三要素

数据的逻辑结构

数据的逻辑结构分为线性和非线性:
线性: 线性表、栈、队列、串、数组、广义表
非线性: 集合、树、图

数据的线性结构: 数据元素之间都是一对一的关系,除第一个元素外,所有元素都有唯一前驱;除最后一个元素外,所有元素都有唯一后继。
数据的树形结构: 数据元素之间是一对多的关系。
数据的图结构: 数据元素之间是多对多的关系。

数据的存储结构

数据的存储结构是指数据在计算机中的表示。
数据的存储结构是用计算机语言实现的逻辑结构。
数据的存储结构主要有:顺序存储、链式存储、索引存储和散列存储。

顺序存储:
逻辑上相邻的元素存储在物理位置上也相邻的存储单元中。
元素之间的元素关系由存储单元的邻接关系来体系。
优点:可以实现随机存取,每个元素占用最少的存储空间。
缺点:只能使用相邻的一整块存储单元,因此可能会产生出较多的外部碎片。
数据结构的三要素(逻辑结构、存储结构与数据的运算)
数据结构的三要素(逻辑结构、存储结构与数据的运算)

链式存储:
不要求逻辑上相邻的元素物理上也相邻。
借助指示元素存储地址的指针来表示元素之间的逻辑关系。
优点:不会出现碎片现象,充分利用所有存储单元。
缺点:指针会占用额外存储空间,且只能顺序存储。
数据结构的三要素(逻辑结构、存储结构与数据的运算)

索引存储:
在存储元素信息的同时,建立附加索引表
索引表中每项成为索引项。
索引项的一般形式:(关键字,地址)
优点:检索速度快
缺点:索引表占用额外存储空间,增删数据时也需要花费时间更改索引表。
数据结构的三要素(逻辑结构、存储结构与数据的运算)

散列存储:
根据元素关键字直接计算出该元素存储地址。
又称为:哈希(Hash)存储
优点:检索、增加、删减结点操作很快
缺点:若散列函数不好,将会出现元素存储单元冲突的情况,而解决冲突会增加时间和空间存储。

注:
数据的存储结构会影响存储空间分配
数据的存储结构会影响对数据运算的速度