数据结构系列,一直是希望重新学习整理的一个系列,现在有时间,对数据结构方面进行一个回顾,把零散的数据结构碎片串联起来,作为一个整理,本系列主要参考书籍有:
那么什么是数据呢?
数据是描述客观事实的符号,是计算机可以操作的对象,能被计算机识别,并输入给计算机处理的符号集合,比如:
是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被成为记录
比如相对于社会,每个独立的人就是一个数据元素
一个数据元素可以由若干个数据项组成,数据项是数据不可分割的最小单位
比如:一个人(数据元素)拥有年龄,身高,体重,职业等等数据项,也可以拥有眼睛,鼻子等等数据项,具体需要哪些数据项,由你要开发的系统决定
数据项是数据不可分割的最小单位,我们在真正讨论问题时,数据元素才是数据结构中建立模型的着眼点。就像我们谈论一部电影时,是讨论这部电影角色这样的“数据元素”,而不是针对这个角色的姓名或者年龄这样的“数据项”去研究分析。
是性质相同的数据元素的集合
什么叫性质相同呢,是指数据元素具有相同数量和类型的数据项,比如人都有姓名、生日、性别等相同的数据项。因数据对象是数据的子集,在实际应用中,在不产生混淆的情况下,我们都将数据对象简称为数据。
是相互之间存在一种或者多种特定关系的数据元素的集合
上面的概念着实有点枯燥,但是都是基本需要理解的概念
按照视点的不同,我们把数据结构分为逻辑结构和物理结构
逻辑结构:是指数据对象中数据元素之间的相互关系
逻辑结构分为以下4种: 1–集合结构;2–线性结构;3–树形结构;4–图形结构
集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系,各个元素是“平等”的,它们的共同属性是“同属于一个集合”,类似数学中的集合,如下图所示:
线性结构中的数据元素之间是一对一的关系,如下图所示:
我们比较常见的,数组,链表,队列等都是线性结构
数据元素是多对多的关系,如下图所示
逻辑结构是针对具体问题的,是为了解决某个问题,在对问题理解的基础上,选择一个合适的数据结构表示数据元素之间的逻辑关系
物理结构:是指数据的逻辑结构在计算机中的存储形式
数据结构的存储结构形式有2种:顺序存储和链式存储
是把数据元素存储在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的
说白了,就是占位,数组就是这种结构
是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的,用一个指针存放数据元素的地址,通过地址可以找到相关数据元素的位置
典型的链式相似场景;比如银医院等地方,设置了排队系统,每个人去了,先领一个号,等着叫号,叫到时去办理业务或看病。在等待的时候,爱在哪在哪,可以坐着、站着,去外面溜达一圈,只要及时回来就行。你关注的是前一个号有没有被叫到,叫到了,下一个就轮到了。
总结:
逻辑结构:
物理结构