1.2 基本概念和术语
在学习数据结构的过程中,涉及一些基本概念和专业术语,本节先来了解这些基本概念和专业术语。
1.数据
数据(Data)是描述客观事物的符号,是能输入计算机中并能被计算机程序处理的符号集合。数据是计算机程序加工的“原料”。例如,一个文字处理程序(如Microsoft Word)的处理对象就是字符串,一个数值计算程序的处理对象就是整型和浮点型数据。因此,数据的含义非常广泛,如整型、浮点型等数值类型及字符、声音、图像、视频等非数值数据都属于数据范畴。
2.数据元素
数据元素(Data Element)是数据的基本单位,在计算机程序中通常作为一个整体来考虑和处理。一个数据元素可由若干个数据项(Data Item)组成,数据项是数据不可分割的最小单位。例如,一个学校的教职工基本情况表包括工号、姓名、性别、籍贯、所在院系、出生年月及职称等数据项,如表1-1所示。表1-1中的一行就是一个数据元素,也称为一条记录。
表1-1 教职工基本情况表
3.数据对象
数据对象(Data Object)是性质相同的数据元素的集合,是数据的一个子集。例如,对于正整数来说,数据对象是集合N={1,2,3,…};对于字母字符数据来说,数据对象是集合C={'A'','B'’,'C',…}。
4.数据结构
数据结构(Data Structure)即数据的组织形式,它是数据元素之间存在的一种或多种特定关系的数据元素集合。在现实世界中,任何事物都是有内在联系的,而不是孤立存在的,同样,在计算机中,数据元素不是孤立的、杂乱无序的,而是具有内在联系的数据集合。例如,表1-1所示的教职工基本情况表是一种表结构,学校的组织机构是一种层次结构(见图1-2),城市之间的交通路线属于图结构(见图1-3)。
图1-2 学校的组织机构图
图1-3 城市之间的交通路线图
5.数据类型
数据类型(Data Type)用来刻画一组性质相同的数据及其操作。数据类型是按照值的不同进行划分的。在高级语言中,每个变量、常量和表达式都有各自的取值范围,数据类型就说明了变量或表达式的取值范围以及所能进行的操作。例如,在Java语言中,一个英文字符占一字节,即8位,对于使用UTF-8编码的汉字来说,一个中文字符占3字节,对于使用GBK编码的汉字来说,一个汉字占2字节。在相同的字符编码情况下,字符类型决定了它的取值范围,同时也定义了在其范围内可以进行赋值运算、比较运算等。
在Java语言中,数据类型按照结构可分为基本类型和引用类型。基本类型是不可以再分解的基本类型,包括数值型(byte、short、int、long、float、double)、字符型、布尔型。引用类型是可以再分解的,它由若干类型组合而成,包括字符串、数值、枚举、类、接口,如图1-4所示。
图1-4 数据类型
随着计算机技术的飞速发展,计算机从最初仅能够处理数值信息,发展到现在能处理的对象包括数值、字符、文字、声音、图像及视频等信息。任何信息只要经过数字化处理,就能够让计算机识别并处理。当然,这需要对要处理的信息进行抽象描述,让计算机能理解。