《数据结构》 李春葆 第一章-绪论
1 什么是数据结构
数据元素以及数据元素之间的关系,数据元素=数据+结构。
数据结构包括:数据的逻辑结构数据的存储结构,数据的运算
1.1 数据结构的定义
数据(data):描述客观事物的数字和字符的集合(例如,2班全体学生的信息集合,包括学号、姓名、性别等,如下表格)
学号 | 姓名 | 性别 |
---|---|---|
01 | 张三 | 男 |
02 | 李四 | 男 |
03 | 丽丽 | 女 |
… | … | … |
数据元素(data element):作为数据的的基本单位,也成为元素,节点,顶点或者记录,如上表中 张三 一栏为一个数据元素,数据元素可以由多个数据项组成
数据项(data item):具有独立含义的数据最小单位,也被称为字段或域,比如上述班级学生表中每个数据元素,均由包含三个数据项组成(学号、姓名,性别)
数据对象(data object):性质相同的数据元素的集合,是数据的一个子集
数据结构(data structure):指所有数据元素以及数据元素之间的关系可以看作是相互之间存在着某种特定关系的数据元素的集合
数据结构包括:
(1)数据的逻辑结构:由数据元素之间的逻辑关系构成
(2)数据的存储结构:数据元素及其关系在计算机存储器中的存储表示,也称为数据的物理结构
(3)数据的运算:施加在该数据上的操作
1.2 逻辑结构
数据的逻辑结构是从数据元素的逻辑关系上描述数据的,是指数据元素之间的逻辑关系的整体,通常是从求解问题中提炼出来。
与数据的存储无关,是独立于计算机的
1.2.1 逻辑结构的表示
数据的逻辑结构表示有多种,常见的有图表和二元组
1.图表表示
逻辑结构的图表表示就是采用表格或图形直接描述数据的逻辑关系,如下所示的学生表,表中每个数据元素都由4个数据项组成。
从逻辑上看,学号01的学生与学号08的学生相邻,而08与03不相邻,表中4个学生记录和他们之间的相邻关系构成了该数据的逻辑结构。
学号 | 姓名 | 性别 | 班级 |
---|---|---|---|
01 | 张三 | 男 | 01 |
08 | 李四 | 男 | 02 |
21 | 丽丽 | 女 | 01 |
03 | 王强 | 男 | 01 |
… | … | … | … |
用图形表示逻辑结构,图形中每个节点对应着一个数据元素,二者之间带箭头的连线表示他们之间的相邻关系,用“学号”数据项唯一标识数据元素,学生表的逻辑结构如下图:
2.二元组表示
二元组是一种通用的逻辑结构表示方法,如下:
B=(D,R)
其中B是一种数据逻辑结构,他由数据元素的集合D以及D上二元关系的集合R所组成。即:
D={di|1<=i<=n,n>=0}
R={rj|1<=i<=m,m>=0}
其中,di表示集合D中第ig元素,n为D中数据元素的个数,若n=0,则D是一个空集,因而B也就毫无结构可言,有时也把这种情况认为是具有任意结构。
rj表示集合R中的第j个关系,m为R中关系的个数