说明.取材于《大话数据结构》
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合
程序设计 = 数据结构 + 算法
基本概念与术语
-
什么是数据?
数据是符号,这些符号必须具备两个条件
- 可以输入到计算机
- 能被计算机程序处理
-
什么是数据元素?
组成数据的、有一定意义的基本单位,在计算机通常作为整体处理,也被称为记录。
-
什么是数据项?
数据项:一个元素由若干个数据项组成,数据项(属性)是数据不可分割的最小单位
-
数据对象
数据对象:是性质相同的数据元素的集合,是数据的子集
性质相同?指数据元素具有相同数量和类型的数据项
tip: 在实际应用中,处理数据元素通常具有相同性,在不产生混淆的情况下,我们将数据对象简称为 数据
-
数据结构
不同数据元素之间存在特定的关系,这些关系称为 结构
什么是数据结构?是相互之间存在一种或多种特定关系的数据元素的集合
一种或多种特定关系,具体是什么样的关系?
逻辑机构与物理结构
-
逻辑结构
什么是逻辑结构?是指数据对象中数据元素之间的相互关系。(今后关注的重点)
主要有以下四种:
- 集合结构:集合结构中的数据元素除了同属于一个集合外,他们之间没有其他关系。(类似数学中的集合)
- 线性结构:线性结构中的数据元素之间是一对一的关系
- 树形结构:树形结构中的数据元素之间存在一对多的关系
- 图形结构:图形结构中的数据元素是多对多的关系
注意:
- 每个元素看作一个节点,用于圆圈表示
- 元素之间的逻辑关系用节点之间的连线表示,如果关系是有方向的,那么用箭头表示
逻辑结构是针对具体问题的,是为了解决某个问题,在对问题的理解的接触上,选择合适的数据结构表示数据元素之间的逻辑关系
- 集合结构:集合结构中的数据元素除了同属于一个集合外,他们之间没有其他关系。(类似数学中的集合)
-
物理结构(又叫存储结构)
物理结构:是指数据的逻辑结构在计算机中的存储形式
就是如何把数据元素存储到计算机的存储器上,主要针对内存而言
数据的存储结构应正确反应数据元素之间的逻辑关系
有以下两种形式:
- 顺序存储结构:把数据元素存放在地址连续的存储单元,其数据之间的逻辑关系和物理关系是一样的
- 链式存储结构:把数据元素存放在任意的存储单元里(需要使用指针存放数据元素的地址),这组存储单元可以是连续的,也可以是连续的
- 顺序存储结构:把数据元素存放在地址连续的存储单元,其数据之间的逻辑关系和物理关系是一样的
抽象数据结构
-
数据类型
是指一组性质相同的值的集合及定义再此集合上的一些操作的总称
在 C 语言中 ,按照取值的不同,数据类型分两类:
- 原子类型:是不可再分解的基本类型,包括整型,实型,字符型等
- 结构类型:由若干类型组成,可以再分解。例如 整型数组
抽象是指抽取事物的具有普遍性的本质
-
抽象数据类型
Abstract Data Type,ADT :是指一个数学模型及定义在该模型上的一组操作(定义 仅仅取决于他的一组逻辑特性,与计算机内部存储无关)