前言
- 数据结构分别有两个重要结构:逻辑结构和物理结构
数据结构起源
- 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及官们之间的关系和操作等相关
问题的学科。
一、逻辑结构
逻辑结构:是指数据对象中数据素之间的相互关系。其实这也是今后最需要关注的问题逻辑结构分为以四种:
-
集合结构
集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。 各个数据元素是"平等’的,它们的共同属性是"同属于一个集合"。数据结构中的集合关系就类似 数学中的集合
-
线性结构
线性结构:统性 的数据元素之间是一对一的
-
树形结构
树形结构:树形结构中的数据元素之间存在一种一对多的层次关系
-
图形结构
图形结构:图形结构的数据元素是多对多的关系
二、物理结构
物理结构:是指数据的逻辑结构在计算机中的存储形式。
-
顺序存储结构
顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑
系和物理关系是一致的。
描述解释:这种存储结构其实很简单,说白了 就是排队占位。大家都按顺序排好,每个人
占一小段空间,大家谁也别插谁的队。
-
链式存储结构
链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
描述解释:显然,链式存储就灵活多了,数据存在哪里不重要,只要有一个指针存放了相应的地址就能找到白了。
-
索引存储结构:
定义:为了方便查找,整体无序,但索引块之间有序,需要额外空间,存储索引表。
优点:对顺序查找的一种改进,查找效率高
缺点:需额外空间存储索引 -
散列存储结构:
定义:选取某个函数,数据元素根据函数计算存储位置可能存在多个数据元素存储在同一位置,引起地址冲
优点:查找基于数据本身即可找到,查找效率高,存取效率高。
缺点:存取随机,不便于顺序查找。
三、总结概念
这些概念,给出了数据结构的定义:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
简单的理解:就是一个老外,觉得编程者玩意儿不弄得复杂点,不能证明他的厉害,所以推出“数据结构”这一课程,让所有学编程的人“享受它带来的乐趣”或者“体验被折磨后无尽的烦恼”。