数据:能被输入计算机且能被计算机处理的各种符号的集合 数据元素:是数据的基本单元,在计算机程序中通常作为一个整体进行考虑和处理。其他简称:元素、记录、节点、顶点 数据项:构成数据元素的不可分割的最小单位 数据对象:是性质相同的数据元素的集合,是数据的一个子集 数据>数据元素>数据对象 数据结构:数据元素不是孤立存在的,它们之间存在着某种关机,数据元素相互之间的关系称为结构 是指相互之间存在一种或多种特定关系的数据元素集合 或者说数据结构是带结构的数据元素的集合 数据结构包括以下三个方面的内容: 1.数据元素之间的逻辑关系,也称为逻辑结构 2.数据元素及其关系在计算机内存中的表示(又称为映像),称为数据的物理结构或数据的存储结构。 3.数据的运算和实现,即对数据元素可以施加的操作以及这些操作在相应的存储结构上的实现。 逻辑结构 描述数据元素之间的逻辑关系 与数据的存储无关,独立于计算机 是从具体问题抽象出来的数学模型 物理结构(存储结构) 数据元素及其关系在计算机存储器中的结构(存储方式) 是数据结构在计算机中的表示 逻辑结构与存储结构之间的关系 存储结构是逻辑关系之间的映像与元素本身的映象 逻辑结构是数据结构的抽象,存储结构是数据结构的实现 两者综合起来建立了数据元素之间的结构关系
数据结构的种类 划分方法一 (1)线性结构:有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继。例如:线性表、栈、队列、串 (2)非线性结构:一个结点可能有多个直接前驱和直接后驱。例如数、图 划分方法二: 四类基本逻辑结构 (1)集合结构:结构中的数据元素之间同属于一个结合的关系外,无其他任何关系。 (2)线性结构:结构中的数据元素之间存在着一对一的线性关系。 (3)树形结构:结构中的数据元素之间存在着一对多的层次关系。 (4)图状结构或网状结构:结构中的数据元素之间存在着多对多的任意关系。 四种基本的存储结构 一、顺序存储结构 用一组连续的存储单元依次存储数据元素,数据元素之间的逻辑关系由元素的存储位置来表示。 C语言中用数组来实现顺序存储结构 二、链式存储结构 用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针来表示。 C语言中用指针来实现链式存储结构。 三、索引存储结构 在存储节点信息的同时,还建立附加的索引表。 索引表中的第一项称为一个索引项, 索引项的一般形式是:(关键字,地址) 关键字是能唯一标识一个节点的那些数据项 若每个节点在索引表中都有一个索引项,则该索引表称之为稠密索引。若一组节点在索引表中只对应一个索引项,则该索引表称之为稀疏索引。 数据类型和抽象数据类型 高级语言中的数据类型明显地或隐含地规定了在程序执行期间变量和表达的所有可能的取值范围,以及在这些数值范围上所允许进行的操作。例如:C语言中定义变量i为int类型,就表示i是[-min,max]范围的整数,在这个整数集上可以进行+、-、*、/等操作 数据类型的作用:1.约束变量或常量的取值范围,2.约束变量或常量的操作。 1.2.3 数据类型 在使用高级程序语言设计语言编写程序时,必须对程序中出现的每个变量、常量或表达式,明确说明它们所属的数据类型。 一些最基本数据结构可以用数据类型来实现,如数组、字符串等;而另一些常用的数据结构,如栈、队列、树、图等,不能直接用数据类型来表示。 高级语言中的数据类型明显地或隐含地规定了在程序执行期间变量和表达的所有可能的取值范围,以及在这些数值范围上所允许进行的操作。可以约束或规范变量或常量的取值范围和操作。 例如:C语言中定义变量i为int类型,就表示i是[-min,max]范围的整数,在这个整数集上可以进行加减乘除等操作。 定义:数据类型是一组性质相同的值的集合以及定义于这个值集合上的一组操作的总称。 数据类型=值的集合+值集合上的一组操作
抽象数据类型(Abstract Data Type, ADT):是指一个数学模型以及定义在此数学模型上的一组操作。 由用户定义,从问题抽象出数据模型(逻辑结构) 还包括定义在数据模型上的一组抽象运算(相关操作) 不考虑计算机内的具体存储结构与运算的具体实现方法。 抽象数据类型的形式定义:抽象数据类型可用(D、S、P)三元组表示。其中:D是数据对象;S是D上的关系集;P是对D的基本操作集。