-
数据结构的研究内容
-
基本概念和术语
-
算法和算法分析
-
了解数据结构研究的主要内容
-
掌握数据结构中涉及的基本概念
-
掌握算法、算法的时间复杂度及其分析的简易方法
什么是数据结构
数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。记为:
Data_Structure=(D,R)
其中D是数据元素的集合,R是该集合中所有元素之间的关系的有限集合。
简言之数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作等的学科。
下面通过几个例子更加全面直观的认识一下数据结构:
【例】索引表
按分类号
001 | 高等数学 |
---|---|
002 | 理论力学 |
003 | 高等数学 |
004 | 线性代数 |
按作者
樊映川 | 高等数学 |
---|---|
华罗庚 | 高等数学 |
栾汝书 | 线性代数 |
此例即数据结构中的线性表
【例】人机对弈
此例即数据结构中的树
【例】古老的七桥
此例即数据结构中的图
基本结构和术语
- 数据(data): 所有能输入到计算机中去的描述客观事物的符号。
-*数值型数据
-*非数值型数据 - 数据元素(data element): 数据的基本单位,也称结点(node)或记录(record)
- 数据项(data item): 有独立含义的数据最小单位,也称域(field)
数据 > 数据元素 > 数据项
【例】学生表 > 个人记录 > 学号、姓名… - 数据对象(data object): 相同特性数据元素的集合,是数据的一个子集。
【例】整数数据对象
N = {0,±1,±2…}
研究对象
逻辑结构
根据数据元素间关系的基本特性,有四种基本逻辑结构。
- 集合——数据元素间除“同属于一个集合”外,无其它关系。
- 线性结构——一个对一个,如线性表、栈、队列。
- 树形结构——一个对多个,如树。
- 图状结构——多个对多个,如图。
存储结构
- 顺序存储结构
借助元素在存储器中的相对位置来表示数据元素间的逻辑关系。 - 链式存储结构
借助指示元素存储地址的指针表示数据元素间的逻辑关系。 - 散列存储结构
通过关键字直接计算得到数据元素的存储位置。
抽象数据类型的特性
抽象数据类型(abstract data type-ADT):
指一个数学模型以及定义在该模型上的一组操作。由用户定义用以表示应用问题的数据模型;由基本的数据类型组成,并包括一组相关的操作。
- 抽象性:强调数据类型的数学特性,与其在计算机内部如何表示和实现无关
- 可扩展性:由已有的数据类型可扩展出尚未实现的数据类型
抽象数据类型可以用以下的三元组来表示:
ADT=(D,S,P)
(D:数据对象 S:D上的关系集 P:D上的操作集)
ADT常用定义格式:
ADT抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT抽象数据类型名