数据结构读书笔记
2018年9月17日晚
引言
数据结构是计算机存储、组织数据的方式,它是指相互之间存在一种或多种特定关系的数据元素的集合。在计算机中,数据元素并不是孤立的、杂乱无序的而是按照一定的内在联系存储起来的,这种数据之间的内在联系就是数据结构的组织形式。
数据
数据是指能直接输入计算机中,被计算机处理的富豪和被计算机操作的对象。总的来说,数据就是能被计算机处理的符号。
数据元素
数据元素是数据结构中的基本单位,它也被叫做元素,结点,记录等。
数据对象
数据对象是性质相同的数据元素的集合。数据结构是计算机学科的理论基础之一,也是软件开发的必备基础。
数据结构的分类
1.逻辑结构
逻辑结构反映的是数据元素之间的关系,它们与数据元素在计算机中的存储位置无关,是数据结构在用户面前的呈现形式。
-
集合
-
线性结构
-
树形结构
-
图形结构
-
存储结构
顺序存储
顺序存储是把逻辑上相邻的结点存储在地址连续的存储单元里,数据元素之间的关系由存储单元是否相邻来实现。
优点:顺序存储可以提高空间的利用效率,而且对于随机访问元素,其效率非常高,因为逻辑上相邻的元素,其存储地址也是紧邻的,所以可以按元素序号来快速查找某一个元素。
缺点:顺序存储结构实现元素的插入和删除,效率会非常的低。因为如果要插入/删除一个元素需要将这个位置之后的所有元素后/前移一个位置。
注意:顺序存储结构在使用时有空间限制,当需要存储元素的个数多余预先分配夫人空间时,会出现溢出现象;当元素分配少于预先分配的空间时,又会造成空间浪费。
链式存储
优点:插入和删除操作高效简洁
缺点:无法进行元素的随机访问。
注意:链式存储的空间利用率也较低,因为分配的内存单元有一部分被用来存储结点之间的逻辑关系。但链式存储在存储元素时没有空间限制,顺序存储与链式存储都是按需分配,只是链式存储在需要时方便的分配新空间,不会造成空间不足或浪费。
索引存储
方便数据查找而设计,在存储结点信息的同时,还建立附加的索引表。索引表存储两个字段,一个是关键字,一个是地址。这种结构类似于人们常用的字典。
优点:快速地对数据进行随机访问。又因为在插入删除操作时,只需要更改索引表中的地址值,不必移动结点,所以在数据更改方面也具有较高的效率。
缺点:索引结构在建立结点时会额外的分配空间来建立一个索引表,因此降低了空间利用率。
散列存储
又称哈希存储结构,是一种力图将数据元素的存储位置与关键字之间建立确定关系的查找技术。它的基本思想是通过一定的函数关系(散列函数、也称哈希函数)计算出一个值,将这个值作为元素的存储地址。
优点:访问速度快
注意:数据的各种存储结构都有各自优点,各有用途,不能说哪一种存储结构比另一种好。