数据结构的基本概念
数据:
数据(data)是描述客观事物的数字、字符以及所有能够输入到计算机中并能被计算机接受的各种符号集合的统称。数据是信息的符号表示,是计算机程序的处理对象。除了数值数据,计算机能够处理的数据还可以是各种非数值数据,如字符串、图形、音频、视频等多媒体数据。
表示一个事物的一组数据称为一个数据元素(data element):数据元素是数据的基本单位。一个数据元素可以是一个不可分割的原子项,也可以由多个数据项组成。
数据项(data item)是数据元素中有独立含义的、不可分割的最小标识单位。例如,一个整数、一个字符都是原子项;一个学生数据元素包含学号、姓名、性别和出生日期等多个数据项组成。
数据类型:
类型(type)是具有相同逻辑意义的一组值的集合。数据类型(data type)是指一个类型和定义在这个类型上的操作集合。数据类型定义了数据的性质、取值范围以及对数据所能进行的各种操作。例如,Java语言的整数类型int,除了数值集合[-231,...,-2,-1,0,1,2,...,231-1]之外,还包括在这个值集合上的操作集合[+,-,*,/,%,=]。
程序中的每一个数据都属于一个数据类型,决定了数据的类型也就决定了数据的性质以及对数据进行的运算和操作,同时数据也受到类型的保护,确保数据不能进行非法操作。
高级程序涉及语言通常预定一些基本数据类型和构造数据类型。基本数据类型的值是不可分解的,它可直接参与该类型所允许的运算。构造数据类型是使用已有的简单数据类型和已定义的构造数据类型按照一定的语法规则组织起来的较复杂的数据类型。构造数据类型的变量包含多个数据项。
java语言的基本数据类型有整数类型、浮点数类型、字符类型、布尔类型,构造数据类型(引用类型)有数组、类和接口。
数据结构
计算机处理的数据不是杂乱无章的,而是有着内在联系的。只有分析清楚它们的内在联系,对大量的、复杂的数据才能进行复核的组织和有效处理。
数据结构是指元素之间存在的关系。一个数据结构(data structure)是由n(n≥0)个数据元素组成的有限集合,数据元素之间具有某种特定的关系。
数据结构概念包括三方向:数据的逻辑结构
数据的存储结构
数据的操作
数据结构与数据类型两个概念的侧重点不同。数据类型研究的是每种数据所具有的特性,以及对这种特性的数据能够进行哪些操作;数据结构研究的是数据元素之间具有的相互关系,数据结构与数据元素的数据类型无关,也不随数据元素值的变化而变化。
抽象数据类型
程序设计语言使用数据类型描述数据特性,采取“表示与实现分离”的策略。语言本身仅提供数据类型的语法规则,并没有说明这些数据类型是如何实现的;程序员按照这些规则使用数据类型,而不必知道这些数据类型是如何实现的。
抽象数据类型(Abstract Data type,ADT)指一个数学模型以及定义在该模型上的一组操作。抽象数据类型和数据类型本质上是一个概念,它的最重要特征是将一个类型上的数据及操作的逻辑含义与具体实现分离
与使用数据类型描述数据特性一样,通常使用抽象数据类型描述数据结构,将线性表、树、图等数据结构分别定义为抽象数据类型,每种抽象数据类型描述一种数据结构的逻辑特性和操作,与该数据结构在计算机内的存储及实现无关。
抽象数据类型是软件模块化设计思想的重要手段。一个抽象数据类型是描述一种特定功能软件的基本模块,由各种基本模块可组织和构造起来一个庞大的软件系统。