1、基本术语与概念
1.1 数据
描述客观事物的符号,能够输入到计算机中并且被计算机处理(识别、操作)的对象 。(包括基础数值类型与非数值类型)
数值类型:整型、实型等,可以经行直接的数值计算。还包括声音、图像、视频等
非数值类型:包括字符数据类型以及通过编码方式转化为字符类型的类型(声音,视频等)
1.2 数据元素 与 数据项
数据元素:组成数据具有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。
数据项:数据不可分割的最小单位,若干个数据项组成数据元素。
eg: 某某人这个数据元素 由 年龄,性别数据项组成。
1.3 数据对象
具有相同性质的数据元素的集合,数据的子集。
Notes: 1、相同性质的数据元素 具有相同数量和类型的数据项。
2、由于数据对象是 数据的子集,且实际应用中处理的数据元素通常具有相同性质,在不产生混淆的情况下,数据对象可被称为 数据。
1.4 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
PS:结构:各个组成部分按照一定的规则相互搭配和排列的方式
Q:为什么需要数据结构?
A: 待处理对象的特性及各处理对象之间往往存在的一定的关系,采用满足这种关系的数据结构,在数据处理上就会有很大的便利。
1.5 逻辑结构与物理结构
数据对象中数据元素之间的相互关系称为逻辑结构,逻辑结构在计算机中的存储形式被称为物理结构(或者存储结构)。逻辑结构是面向问题的,而物理结构是面向计算机的,其基本的目标就是将数据及其逻辑关系存储到计算机的内存中。
1.5.1 逻辑结构
逻辑结构分为四种类型:集合结构,线性结构,树形结构,图形结构。
1.5.1.1:集合结构
数据元素除了同属于一个集合外,它们之间没有其他关系。与数学中的集合概念类似,如下图:
PS:数学定义----集合是指具有某种特定性质的具体的或抽象的对象汇总而成的集体。其中,构成集合的这些对象则称为该集合的元素。
1.5.1.2:线性结构
线性结构中的数据元素之间是一对一的关系。如下图所示:
1.5.1.3:树形结构
数据元素之间存在一对多的层次关系。如下图所示:
1.5.1.4:图形结构
数据元素之间是多对多的关系。如下图所示。
PS:元素之间采用箭头表示:则说明关系具有方向性。
1.5.2 物理结构
1.5.2.1 顺序存储结构
数据元素存放在地址连续的存储单元里。其数据间的逻辑关系和物理关系是一致的。如下图所示:
特点:规则简单,数据元素中的数据项均是按照顺序内存地址排列。
1.5.2.2 链式存储结构
数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。数据元素的存储关系并不能反应,需要用一个指针来存储数据元素的地址,如下图所示:
特点:存储灵活,但需要一个指针来存放其地址。
1.6 抽象数据类型
数据类型:一组性质相同的值的集合及定义在此集合上的一些操作总称。以C语言为例,按照取值不同,数据类型可以划分为两类:
① 原子类型:不可分割的基本类型,包括整形、实型、字符类型
② 结构类型:由若干个类型组合而成,可分解,例如整型数组是由若干整形数据组合而成
抽象数据类型(Abstarct Data Type , ADT):指一个数学模型及定义在该模型上的一组操作。 "抽象"意义在于数据类型的数学抽象特性,而与计算机内部实现与表示无关。既可以对已有的数据类型进行抽象,也可以是编程者自定义的类型进行抽象。抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性。描述格式如下
# 描述抽象类型的格式
ADT 抽象数据类型名
Data
数据元素之间逻辑关系定义
Operation
操作1
初始条件
操作描述结果
...
操作n
...
endADT