学什么?
用代码将现实世界的问题信息化,然后用计算机高效的处理这些信息从而创造价值。
计算机的大致构架
数据结构的基本概念
- 数据:数据是信息的载体,是描述客观事物属性的数、字符和所有能输入到计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。
- 数据元素:数据元素相当于是一个信息的集合,也是数据的基本单位,通常作为一个整体进行考虑和处理。比如人类。
- 数据项:一个数据元素可以由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。比如人的身高、体重。
- 数据对象:数据对象是具有相同性质的数据元素的集合,是数据的一个子集;类似C语言的结构体。
- 数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
如下图示:
数据结构三要素
逻辑结构
逻辑结构,研究的是元素之间的逻辑关系
- 集合:各个元素同属于一个集合,别无其他关系
- 线性结构:数据元素之间是一对一的关系。除了第一个元素,所有的元素都有唯一前驱;除了最后一个元素,所有的元素都有唯一后继。
- 树形结构:数据元素之间的是一对多的关系,比如思维导图。
- 网状结构(图结构):数据元素之间是多对多的关系。
数据的运算
数据运算研究的是针对于某种逻辑结构,结合实际需求,定义基本运算
比如:
针对逻辑结构——线性结构
基本运算:
- 查找第i个数据元素
- 在第i个位置插入/删除某个数据元素
- …
定义一种数据结构 = 逻辑结构 + 数据运算
存储结构(物理结构)
物理结构是研究如何用计算机来实现经过定义的数据结构。
数据的存储结构分为四种:顺序存储,链式存储,索引存储,散列存储。
- 顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的领接关系来体现。
- 链式存储:借助指示元素存储地址的指针来表示元素之间的逻辑关系,即在逻辑上相邻的元素在物理位置上可以不相邻。
- 索引存储:在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项的一般形式为关键字或地址。让离散的数据通过特定的性质(关键字)使其方便获取。
- 散列存储:根据元素的关键字直接计算出该元素的存储地址,又称为哈希存储