什么是数据结构
众所周知,计算机的基本功能大多都基于对数据的操作,但当数据较多时,特别是如今的大数据时代,数据量越来越庞大,该如何组织这些数据,使之能被更高效地处理呢?例如我们统计了今年新入学的学生信息,包括姓名、年龄、学号、籍贯等,若想在这一大堆数据中高效地进行插入、删除、查找和修改等操作,就要将这些数据合理的组织起来,例如将这些数据制作成表,如图1所示,这种表就可以称为一种数据结构。
图1 学生信息表
数据结构是计算机存储、组织数据的方式,它是指相互之间存在一种或多种特定关系的数据元素的集合。在计算机中,数据元素并不是孤立的、杂乱无序的,而是按照一定的内在联系存储起来的,这种数据之间的内在联系就是数据结构的组织形式。例如图1-1,数据以一种线性表的形式组织起来。除此之外,数据还可以以别的方式组织起来:如图书馆藏书数据可以组织为索引表的形式;火车站排队买票可以组织为队列的形式;家庭族谱可以组织为树的形式;同学朋友之间的关系可以组织为图的形式等等。这些所谓的索引表、队列、树、图都是一种数据结构。
在深入学习数据结构之前,我们先来学习一下其中的几个基本概念和术语,学习这些概念术语对以后理解数据结构会有帮助。
数据
数据是指能直接输入计算机中,被计算机处理的符号,被计算机操作的对象。数据不仅仅包括整型、实型等数值数据,也包括声音、视频、图像等非数值数据。总的来说,数据就是计算机处理的符号。要注意,数据有两个必备条件:能直接输入计算机能被计算机直接处理。随着计算机的发展,数据的范围也在不断地扩大。
数据元素
数据元素是数据结构中基本的独立单位,它也被叫作元素、结点、记录等。如图1-1中学生信息表的第一条记录:“001 奥巴马 男 美国”,即为表中的一个元素。在复杂的数据结构中,数据元素往往由若干个数据项组成,数据项是具有独立含义的最小标识单位,也称为字段或域。如“001 奥巴马 男 美国”这个数据元素由001(学生编号)、奥巴马(姓名)、男(性别)、美国(籍贯)四个数据项组成。
数据对象
数据对象是性质相同的数据元素的集合。所谓性质相同是指数据元素具有相同数量和类型的数据项。数据对象是数据的一个子集。如图1-1的学生信息表,就是一个数据对象,这个数据对象中的数据元素都是由“学号”、“姓名”、“性别”、“籍贯”四个相同的数据项组成;或者班级中全部女生的信息,也是一个数据对象,它是班级学生信息的一个子集。通常简称数据对象为数据,如图1-1中的学生信息表,可称之为一份数据。
数据结构以某种内在联系将由数据项组成的数据元素组织成为一个数据对象,我们在学习数据结构时重在学习数据结构的组织形式以及相关运算。数据结构不但是计算机学科的理论基础之一,也是软件开发的必备基础,因此,无论是从事计算机行业,还是希望在计算机方面继续深造,都应该好好学习这门课。