1什么是数据结构
一个现实问题,抽象出数学模型,设计一个解数据模型方法,最后编程,测试,调试直到得到最终答案。
描述这类非数值计算问题的数学模型不再是数学方程,而是诸如表、树和图之类的数据结构。
一门计算机专业核心课程。介于数学、硬件和软件三者之间的一门课程。
2 基本概念和术语
数据(data)是对客观事物的符号表示,在计算机科学中是指所有输入到计算机中并被计算机程序处理的符号的总称。
数据元素(data element)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。一个数据元素可由若干个数据项(data item)组成。数据项是数据的不可分割的最小单位。
数据对象(data object)是性质相同的数据元素的集合,是数据的一个子集。
数据结构(data structure)是相互之间存在一种或多种特定关系的数据元素的集合。数据元素之间存在某种关系,这种数据元素线之间的关系成为结构(structure)。
根据数据元素之间关系的不同特性,通常有4类基本结构:
(1)集合结构中的数据元素之间除了“同属于一个集合”的关系外,别无其它关系;
(2)线性结构 结构中的数据元素之间存在一个对一个的关系;
(3)树形结构 结构中的数据元素之间存在一个对多个的关系;
(4)图状结构或网状结构 结构中的数据元素之间存在多个对多个的关系。
数据结构的形式定义为:数据结构是一个二元组
Data_Structure= (D,S)其中:D是数据元素的有限集,S是D上关系的有限集。
结构定义中的“关系”描述的是数据元素之间的逻辑关系,因此又称为数据的逻辑结构。
数据结构在计算机中的表示(又称映像)称为数据的物理结构,又称存储结构。它包括数据元素的表示和关系的表示。在计算机中表示信息的最小单位是二进制数的一位,叫做位(bit)。在计算机中,我们可以用一个由若干位组合起来形成的一个位串表示一个数据元素(如用一个资产的位串表示一个整数,用8位二进制数表示一个字符等),通常称这个位串为元素(element)或结点(node)。但数据元素由若干数据项组成时,位串中对应于各个数据项的子位串称为数据域(data field)。
数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。顺序映像的特点是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。非顺序映像的特点是借助指示元素存储地址的指针(pointer)表示数据元素之间的逻辑关系。
算法的设计取决于数据(逻辑)结构,算法的实现依赖于采用的存储结构。
抽象数据类型(abstract data type,简称ADT)是指一个数学模型以及定义在该模型上的一组操作。
一个抽象数据类型的软件模块通常包含定义、表示和实现3个部分。按值的不同特性,可细分为3种类型。
-
原子类型
-
固定聚合类型
-
可变聚合类型
抽象数据类型可用三元组表示:
(,,)其中,是数据对象,是上的关系集,是对的基本操作集。
采用以下格式定义:
ADT 抽象数据类型名{ 数据对象:<数据对象的定义> 数据关系:<数据关系的定义> 基本操作:<数据操作的定义> }ADT抽象数据类型名
基本操作的定义格式为:
基本操作名(参数表) 初始条件:<初始条件描述> 操作结果:<操作结果描述>
多形数据类型(polymorphic data type)是指其值的成分不确定的数据类型。