我们对于程序设计有这样一个公式
程序设计= 数据结构 + 算法
数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。
说到数据结构,我们就得先了解什么是数据:
1.1数据
数据:是描述客观事物的符号,是计算机可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。
简单来说现在就是万物皆数据的大时代。例如常见的人类,当然我也是其中的一个数据元素,我本身的身高、体重、姓名、血型等都是数据项。
1.2 数据元素
数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。
1.3 数据项
数据项:一个数据元素可以由若干个数据项组成。它是数据不可分割的最小单位。
1.4数据对象
数据对象:是性质相同的数据元素是集合,是数据的子集。
说了这么多概念是不是觉的不知道我说了什么玩意儿。
其实我也是刚开始学习数据结构,接下来我们来一起讨论下上述的概念,你们可以看下我的理解是否能够让你更进一步理清这上面这些“数据”的关系。
其实我们在以往的学习中已经知道所有的概念性的东西不好记忆也不好理解,那么接下来我将给你们将这些东西给实例化。
举个栗子,我们整个生态环境可以看成一个数据,那么数据对象就是动物和植物的分类名字,例如:人类,犬类,等等一些从我们实际接触到的拥有相同性质的集合抽象出来的概念就是数据对象,小明,小刚等数据元素拥有相同的特征,可以使用和制造工具,并且直立行走的,拥有一定智商会使用语言的哺乳动物统称为人类(数据对象)。那么数据项就是他们所拥有的特征,眼睛,鼻子,耳朵……,有人可能会问,那些没有鼻子和眼睛的人是不是不在你说的人类的范围内,童鞋,你不要这样叫针,就是你印象中有人类和其他东西的模型,你才能正确的区分人和猴子,把你脑子中对人的模型详细的描述出来,只要符合这些特征,你就自动分辨出这是人或者是猴子,而你脑子中对人的认知组合起来就是人的数据对象,你认识的隔壁老王和老宋就是数据元素,你对数据项的详细描述就是数据项。
那么童鞋,现在你是否理清了这些概念之间的关系了呢?不管你懂不懂,反正我认为我是懂了。
1.5 数据结构
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
1.5.1 逻辑结构
逻辑结构:是指数据对象中数据元素之间的相互关系。
逻辑结构分为以下四种:
- 集合结构:他们除了属于同一个数据对象之外没有任何其他关系。
- 线性结构:数据元素是一对一的关系
- 树形结构:树形结构是一对多的关系
- 图形结构:图形结构是多对多的关系
物理结构有以下两种:
- 顺序存储结构:把元素存放在地址连续的存储的单元里,其数据间的逻辑关系和物理关系是一致的
- 链式存储结构:把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。