数据结构----基本概念和术语
数据
数据
是输入计算机且能被计算机处理的各种符号的集合
- 信息的载体
- 是对客观事物的符号化的表示
- 能被计算机识别,存储和加工
数据包括
- 数值型数据:整数,实数等。
- 非数值型数据:文字,图像,图形,声音等。
数据元素和数据项
数据元素
- 是数据的
基本单位
,在计算机程序中通常作为一个整体进行考虑和处理。如下图一行可以是一个整体,所以是一个数据元素。 - 也称之为元素,或称其为记录,结点,或者顶点。
- 一个
数据元素
又可以有多个数据项
组成
数据项
数据项构
成数据元素
的不可分割的最小单位
- 下图中的一条数据记录(数据元素)有多个数据项构成。
总结
数据,数据元素,数据项之间的关系:
数据>数据元素>数据项
例如:学生表>个人记录>学号,姓名........
数据对象
- 是
性质相同
的数据元素的集合
,是数据的一个子集
数据对象与数据元素的区别
数据元素------组成数据的基本单位,与数据的关系是:集合的
个体
。数据对象------性质相同的数据元素的集合,与数据的关系:是集合的
子集
。
数据结构
数据元素不是孤立存在的,它们存在着某种关系,
数据元素相互之间的关系
称为结构
。是指
相互之间存在一种或者多种特定的关系
的数据元素的集合或者说,数据结构是
带结构的数据元素的集合
数据结构包括的内容
- 数据元素之间的逻辑关系,也称为
逻辑结构
。 - 数据元素及其关系在计算机
内存
中的表示(又称为映像),称为数据的物理结构或数据的存储结构。 - 数据的
运算
和实现
,既对数据元素可以施加的操作以及这些操作在相应的存储结构上的实现
逻辑结构
- 描述数据元素之间的逻辑关系
- 与数据结构的存储无关,独立于计算机。
- 从
具体的问题抽象
出来的数学模型
。
逻辑结构的种类
划分方法一
线性结构
:有且只有一个开始和一个终端结点,并且所有结点都最多只有一个直接前趋和直接后继。比如线性表,栈,队列,串。(一对一
)非线性结构
:一个结点可以有多个true直接前趋和直接后继。例如最短路径问题和人机对弈问题。树和图。(多对多
)
划分方法二
集合结构
: 结构中的数据元素除了同属于一个集合的关系外,无其他任何关系。线性结构
:结构中的数据之间存在着一对一的线性关系。树形结构
:结构中的元素之间存在着一对多的层次关系。图状结构或网状结构
:结构中的数据元素存在着多对多的任意关系。
物理结构(存储结构)
- 是数据结构及其关系在计算机存储器的结构(存储方式)。
- 是数据结构在计算机中的表示。
存储结构的种类
顺序存储结构
:用一组连续
的存储单元按照数据元素的顺序依次
的存储数据元素,根据元素之间的逻辑关系由元素的存储位置来表示。类似于C语言的连续数组。链式存储结构
:用一组任意的存储单元
存储数据元素,数据元素之间的逻辑关系用指针来表示。例如C语言中的指针来实现链式存储和结构,存储元素的同时,在给与一个指针指向另一个元素。我们在存储一个元素本身的同时,还存储了下一个元素的地址
。- 索引存储结构
- 散列存储结构
数据结构和存储结构的关系
- 存储结构是逻辑关系的映像与元素的映像。
逻辑结构是数据结构的抽象,存储结构是数据结构的实现。
- 两者综合起来建立了数据元素之间的数据结构。