系统掌握数据结构1-概念绪论
1. 基本概念
1.数据结构学科:一门研究非数值计算的程序设计问题中的操作对象,以及它们之间关系和操作等相关问题的学科。
程序设计 = 数据结构 + 算法
2.数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。
3.数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。(数据表中的一行)
4.数据项:一个数据元素可以由若干个数据项组成,是数据不可分割的最小单位。(数据表一行中的一项)
5.数据对象:性质相同的数据元素的集合,是数据的子集。(我们所说的“数据”通常都是指“数据对象”)
6.数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
(注释:在计算机中,数据元素并不是孤立的,而是具有内在联系的数据集合。数据元素之间存在的一种或多种特定关系,也就是数据的组织形式。而在数据结构的学习中,不能只重视算法,忽视了结构的重要性。)
2. 逻辑结构与物理结构
1.逻辑结构
逻辑结构:指数据对象中数据元素之间的相互关系。
- 集合结构:集合结构中的数据元素除了同属于一个集合外,没有其他关系。(类似于数学中的集合)
- 线性结构:线性结构中的数据元素之间是一对一的关系。
- 树形结构:树形结构中的数据元素之间存在一种一对多的关系。
- 图形结构:图形结构的数据元素是多对多的关系。
(逻辑结构是针对具体问题的,是为了解决某个问题,在对问题理解的基础上,我们选择一个合适的数据结构表示数据元素之间的逻辑关系,逻辑结构是面向问题的,事实上,上述的四种结构基本可以解决所有问题)
2.物理结构
物理结构:是指数据的逻辑结构在计算机中的存储形式。
(物理结构=存储结构)
(针对具体的问题,我们选择了合适的逻辑结构,我们需要把数据元素以及数据元素之间的逻辑关系存储在计算机上,这就是数据的物理结构,物理结构是面对计算机的)
-
顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
-
链式存储结构:是把数据元素放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
(数据存在哪里不重要,只要有一个指针存放了它的地址我们就能找到,链式结构元素一般拥有相邻元素的地址)
- 索引存储:为数据元素存储的地址建立一张索引表,由关键字和地址组成。(其实就是把指针存放在一起,并为每个指针加一个关键字,学过操作系统的同学一定很熟悉)
- 散列存储:根据元素的关键字直接计算出该元素的地址。(通过散列函数,学到的时候会深度讲解,暂时知道就好)
3.数据类型
数据类型:是指一组性质相同的值的集合以及定义在此集合上的一些操作的总称。
- 原子类型:不可再分解的基本类型
- 结构类型:由若干类型组合而成,是可以再分解的。
- 抽象数据类型:指一个数学模型以及定义在模型上的一组操作。
4.结语
这一章是数据结构的绪论,我认为要解决问题的前提是认识问题,所以为了学好数据结构一定要先认识到什么是数据结构,在以后讨论具体算法时也请不要忽略了结构的重要性,通过结构去理解算法是一个好的方法。在生活中也是,往往当我们认识的问题是什么的时候,它就迎刃而解了。谢谢阅读!