为什么要学习数据结构?
- 套用百度百科的一句话来说,程序设计 = 算法 + 数据结构是瑞士计算机科学家Niklaus Wirth于1976年出版的一本书的书名,很快就成了在计算机工作者之间流传的一句名言。所以我们想要成为一个优秀的工程师就必须学好数据结构这门课程!
1.什么是数据结构
- 数据结构由数据元素组成,数据元素组成相同的数据对象,数据对象为数据的子集,数据项时数据元素里的单位。数据元素不是孤立存在的,它们之间存在着某种关系,成为相互之间的关系成为结构。或者说,数据结构是带结构的数据元素的集合。
2.数据结构包括三个方面的内容
- 数据元素之间的逻辑关系,也成为逻辑结构。
- 数据元素及其关系在计算机内存中的表示(又称为映像),称为数据的物理结构或数据的存储结构。
- 数据的运算和实现,即对数据元素可以施加的操作以及这些操作在相应的存储结构的实现。
3.逻辑结构
- 描述数据元素的逻辑关系。
- 与数据的存储关系,独立于计算机 。
- 是从具体问题抽象出来的数学模型 。
4.物理结构
- 数据元素及其关系在计算机存储器中的结构(存储方式)。
- 是数据结构在计算机中的表示。
5.逻辑结构和物理结构的关系
6.逻辑结构的种类
- 划分方法一
- 线性结构:有且仅有一个开始和一个终端终点,并且所有终点都最多只有一个直接前趋和一个直接后继。
- 非线性结构:一个结点可能有多个直接前趋和直接后继。
- 划分方法二
- 集合结构:结构中的数据元素之间除了同属于一个集合的关系外,无任何其它关系。
- 线性结构:结构中的数据元素之间存在着一对一的线性关系。
- 树形结构:结构中的数据元素之间存在着一对多的层次关系。
- 图状结构或网状结构:数据中的数据元素之间存在着多对多的任意关系。
7.存储结构的种类
一. 四种基本的存储结构
- 顺序存储结构
- 同一组连接的存储单元依次存储数据元素,数据元素之间的逻辑关系由元素的存储位置来表示。
- C语言用数组来实现顺序存储结构。
- 链式存储结构
- 用任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示。
- C语言中用指针来实现链式存储结构
- 索引存储结构
- 在存储终点信息的同时,还建立附加的索引表。
- 散列存储的结构
- 根据节点的关键字之间计算出该节点的存储地址。
8.数据类型和抽象数据类型
定于:数据类型是一组性质相同的值的集合以及定义这个值集合上的一组操作的总称。