本人所使用学习材料为《大话数据结构》本书作者:程杰
此书总共九章,我打算每一章写作一篇文章,既不多也不少。
1.什么是数据结构。
数据结梅:是相互之间存在一种或多种特定关系的数据元素的集舍。
逻辑结构与物理结构
1.逻辑结构。
逻辑结构:是指数据对象中数据元素之间的相互关系。
逻辑结构的4个种类:
1.1 集合结构
集合结构:集合结构中的数据元素除了 同属于一个集合外,它们之间没有其他关
系。
1.2 线性结构
线性结构:线性结构中的数据元素之间是一对一的关系。
1.3 树形结构
树形结构:树形结构中的数据元素之间存在一种一对多的层次关系 。
1.4 图形结构
图形结构:图形结构的数据元素是多对多的关系。
2.物理结构
也有另外一种叫法:储存结构。
物理结构:是指数据的逻辑结构在计算机中的存储形式。
2.1 . 顺序存储结构
顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关
系和物理关系是一致的 。
我觉得原书解释的非常好,所以直接复制黏贴过来:
这种存储结构其实很简单,说白了 , 就是排队占位。大家都按顺序排好,每个人
占一小段空间,大家谁也别插谁的队 。 我们之前学计算机语言时,数组就是这样的顺序存储结构。当你告诉计算机,你要建立一个有 9 个整型数据的数组时,计算机就在内存中找了片空地, 按照一个整型所占位置的大小乘以 9 ,开辟一段连续的空间,于是第一个数组数据就放在第-个位置,第二个数据放在第二个,这样依次摆放。
2.2链式存储结构
原书对于这种关系解释的也很到位,直接复制黏贴:
香港有部电影叫 《无间道》,大陆还有部电视剧叫 《潜伏》,都很火,不知道大家有没有看过 。 大致说的是,某一方潜伏在敌人的内部,进行一些情报收集工作。为了不暴露每个潜伏人员的真实身份,往往都是单线联系,只有上线知道下线是谁,并且是通过暗号来联络。正常情况下,情报是可以顺利地上传下达的,但是如果某个链条中结点的同志牺牲了,那就麻烦了,因为其他人不知道上钱或者下钱是谁,后果就很严重. 比如在 《无间道》 中,梁朝伟是警方在黑社会中的卧底,一直是与黄秋生扮演的警官联络,可当黄遇害后,梁就无法证明自己是一个警察。所以影片的结尾, 当 梁朝伟用枪指着刘德华的头说,"对不起,我是警察 。 "刘德华马上反问道 :“谁知道呢? "是呀,当没有人可以证明你身份的时候 , 谁知道你是谁呢?影片看到这里,多少让人有些唏嘘感慨。 这其实就是链式关系的一个现实样例。
3.抽象数据类型
数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
在计算机中,内存也不是无限大的 ,你要计算一个如 1+1=2 、 3+5=8 这样的整型数字的加减乘除运算,显然不需要开辟很大的适合小数甚至字符运算的内存空间。于是计算机的研究者们就考虑,要对数据进行分类,分出来多种数据类型 。
其实简单来说,就是计算机语言中的int,long这种数据定义。