数据结构的三要素:
一、逻辑结构 二、存储结构(物理结构) 三、数据的运算 其中,逻辑结构指的是数据与数据之间的逻辑关系,逻辑结构有以下四种: (1)数据和数据之间没关系的时候是集合, (2)数据和数据之间是一对一的关系就是线性结构(除了尾数据,其余数据后面只跟着一个元素叫做一对一的关系) (3)数据和数据之间是一对多的关系就是树形结构(一个元素后面可以跟着多个元素,像树干可以有很多枝干一样) (4)数据和数据之间是多对多的关系就是图结构 逻辑结构不涉及在计算机中的如何实现,我们仅仅是在自己的脑子里用理性思维去给数据和数据之间的关系分 类。这四种分类应该可以囊括各种各样的数据关系。
下图均来自于王道考研
数据结构的存储结构也有四种,分别如下 (1)顺序存储 (2)链式存储 (3)索引存储 (4)散列存储
存储结构也叫做物理结构,涉及到了数据之间的关系在计算机上的实现,所以就考虑到了内存。
注意:每个逻辑结构都有四种存储结构,共同构成数据结构
1、顺序结构也就是数据所存储的内存地址是连续的
2、链式存储也就是上一个元素通过指针的方式指向下一个元素
3、索引存储也就是数据元素通过索引(指针)来指向,逻辑结构通过指针来体现
4、散列存储也称哈希存储,数据元素的存储地址是通过计算得到的(这个在第六章讨论)
可以发现,上面的存储结构中,只有顺序存储的内存必须是连续的,其余的存储结构的内存可以是分散的。
存储结构会影响存储空间分配的效率,比如顺序存储如果想在结构中插入一个元素,效率很低,而非顺序存储插入一个元素效率高
存储结构会影响数据运算的速度。比如顺序结构查找的速度高
数据的运算:
- 运算的定义是对于逻辑结构的,就是说我们定义了一个运算,这个运算的作用对象是逻辑结构(比如对于线性结构定义增删查改)
- 运算的实现是对于存储结构的,就是说我们实现运算时针对于特定的存储结构的,同一个逻辑结构的不同的存储结构运算的实现是不同的。