数据结构--第一章
1.1 基本概念1
1.1.1 数据
数据是能输入计算机且能被计算机处理的各种符号的集合,是信息的载体,是对客观事物符号化的表示,能被计算机识别、存储和加工。
数据包括
数值型:整数、实数等;
非数值型:文字、图片、图形、声音等。
1.1.2 数据元素
数据元素是数据的基本单位,也称为元素、记录、节点、顶点。
数据元素由若干个数据项组成。
1.1.3 数据项
数据项是构成数据元素的不可分割的最小单位。
数据、数据元素、数据项三者的关系: 数据>数据元素>数据项。
1.1.4 数据对象
数据对象是性质相同的数据元素的集合,是数据的一个子集,例如:整数、字母字符集合、学生学籍表等。
1.1.5 数据结构
数据元素并不是相互孤立的,而是存在着某种关系,数据元素相互之间的关系称为结构。或者说,数据结构是带结构的数据元素的集合。
数据结构包括三个方面:
1.逻辑结构:数据元素之间的逻辑关系;与存储无关,独立于计算机;是从具体问题中抽象出来的数学模型。
2.存储结构(物理结构):数据结构及其关系在计算机内存中的表示;是在计算机中的存储方式。
3.数据的运算和实现:对数据元素施加的操作及这些操作在相应存储结构上的实现。
逻辑结构与存储结构的关系:
1.存储结构是逻辑关系的映像与元素本身的映像;
2.逻辑结构是数据结构的抽象,存储结构是数据结构的实现;
1.1.6 逻辑结构的种类
划分方法一:
线性结构:有且仅有一个开始和终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。例如:线性表、队列、栈、串。
非线性结构:一个结点可能有多个直接前趋和多个直接后继。例如:树、图。
划分方法二:四种基本逻辑结构
1.集合结构:集合中的元素除了同属于一个集合外再无其他关系;
2.线性结构:数据元素之间存在着一对一的线性关系;
3.树形结构:数据元素之间存在着一对多的层次关系;
4.图状结构:数据元素之间存在着多对多的任意关系;
1.1.7 存储结构
1.顺序存储结构:用一组连续的存储单元依次存储数据元素,元素之间的逻辑关系由元素的存储位置来决定。C语言中用数组来实现顺序存储结构。
2.链式存储结构:
用一组任意的存储单元来存储数据元素,数据元素之间的逻辑关系用指针来表示。C语言中用指针来实现链式存储结构。
3.索引存储结构
4.散列存储结构
1.1.8 数据类型和抽象数据类型
一、
在编程中,必须对出现的常量,变量,或表达式声明所属的数据类型,C语言中提供了很多基本的数据类型和构造数据类型,一些基本数据结构可以用数据类型来实现,但一些常用的数据结构,如栈、队列、树、图等,不能直接用数据类型表示。
数据类型的作用:1.约束常量或变量的取值范围2.约束常量或变量的操作。
数据类型= 值的集合+值集合上的一组操作
二、抽象数据类型
抽象数据类型是指一个数学模型(逻辑结构)以及定义在该模型上的一组操作(抽象运算)。
抽象数据类型的形式定义:
抽象数据类型可用数据对象D,D上的关系集S,对D的基本操作集P来表示。
参数表:复制参数,为操作提供输入值
初始条件:操作执行前数据结构和参数应满足的条件
操作结果:说明操作完成之后,数据结构的变化状况和应返回的结果。
1.1.9 抽象数据类型的实现
回顾
我们用C语言实现抽象数据类型,用已有的数据类型定义存储结构,用函数来描述操作。