[数据结构]学习笔记一 - pod4g/tool GitHub Wiki
1. 数据结构研究的是什么
数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科
程序设计 = 数据结构 + 算法
2. 什么是数据
数据是描述客观事件的符号系统,是计算机中可操作性的对象,是能够被计算机识别,并可以被计算机处理的符号集合
数据不仅仅包含整形、浮点型等数值,还包括字符、电影、声音、图片等非数值类型
总结下数据的特征:
- 能够输入计算机中
- 能被计算机识别并处理
数据即符号
3. 什么是数据元素
是组成数据的、有一定意义的基本单位,在计算机中,通常作为整体来处理。也被称之为「记录」
理解:其实就是数据库中的一行记录,或者java中的实体类。
4. 什么是数据项
组成数据元素的基本单位,一个数据元素由若干个数据项组成
数据项是不可分割的最小单位
理解:数据项其实就是数据库的字段,或者是java实体类中的属性
5. 数据对象
是性质相同的数据元素的集合,是数据的子集
理解:比如一个[{name: 'liyanfeng'}, {name: 'yunchong'}] 就是一个数据对象,它是由形如{name: 'liyanfeng'}的数据元素组成的,当然还有其他的结构,比如集合、树、图等
比如select * from xxx
从数据库里选出来的结果集,就是一个数据对象,它每一行都是一个数据元素,每个字段都是一个数据项
6. 数据结构的定义
是相互之间存在一种或多种特定关系的数据元素的集合
理解:注意,我把「特定关系」四个字加粗了,其实「结构」的意思就是「关系」,只是没有这样翻译而已,但是我们心里也可以把「数据结构」叫做「数据关系」,数据元素也是「集合」,那么它跟数据元素的唯一区别就是数据元素之间有「关系」
7. 结构
逻辑关系。共有下列四种逻辑结构:
7.1 逻辑结构:是指数据对象中数据元素之间的- 集合:除了同属于一个集合外,数据元素之间没有其他关系
- 线性:一对一
- 树:一对多
- 图:多对多
7.2 物理结构:是指数据的逻辑结构在计算机中的存储形式。共有两种物理结构:
- 顺序:顺序存储结构是指把数据元素存储在地址连续的存储单元里,逻辑结构和物理结构是相同的
- 链式:是把数据元素存储在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。链式的存储结构不能反应逻辑关系,所以需要一个指针存放数据元素的地址
理解:逻辑结构是面向问题的,而物理结构是面向计算机的,基本目标就是把数据元素和其逻辑关系存储到内存中
8. 抽象数据类型
是指一个数学模型,及定义在该模型的一组操作
抽象数据类型,跟「类」很像,基于类实例化的对象,就是「数据元素」
抽象数据类型的表示法:
ADT 抽象数据类型名(即类名)
Data
数据元素之间的逻辑关系的定义
Operation
操作1
初始条件
操作结果描述
操作2
...
操作3
...
endADT