参考书:2019数据结构考研复习指导【王道】
做一些自已疑惑的知识点和题目的记录分析~
索引结构
看到索引存储的时候,心里的疑惑是其存在的意义,数据空间毋庸置疑是四种存储结构最大的,其时间效率亦不如顺序结构(这里认为索引存储的索引表为顺序存储结构),那么其存在的意义为何?
查了一些资料,才感受到气的作用,最明显的用于数据库查询中,参考链接:
【程序员必读系列】-数据库索引的原理
数据库为何要建立索引的原因说明
干货:mysql索引的数据结构
用我的理解做一个关于我最初疑惑的回答,用数据库来进行说明,那就是:
首先明白为什么索引会增加速度,DB
在执行一条Sql
语句的时候,默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合。如果我们对某一字段增加索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减少遍历匹配的行数,所以能明显增加查询的速度。
数据
在存储数据时,通常不仅要存储各数据元素的值,而且还要存储数据元素之间的关系
对此句如何理解呢?
翻书的时候在数据结构c语言版(第五页最上面)看到了如下一段话:
数据结构是相互之间存在一种或者多种特定关系的数据元素的集合。在任何问题中,数据元素都不是孤立存在的,而是在他们之间存在着某种关系,这种数据元素相互之间的关系称为结构
通常结构分为以下四类基本结构:
- 集合
- 线性结构
- 树形结构
- 图状结构或者网状结构
这里略去基本说明,只是为了解释元素之间的关系为何。
链式存储设计
链式存储设计时,结点内的储存单元地址一定连续
这题可能真的是易错点,第二次做的时候又错了!!
理解:
在链式存储中,各个不同结点的存储空间可以不连续,但是注意,结点内,存储单元地址一定连续。
以单链表来举例: Data | next
的结构分别可以认为是一个存储单元,这两个之间必须连续!