在计算机科学中,数据是一个比较广泛的概念,所有计算机输入、存储、处理和输出的信息都是数据,如字符、数字、图像、声音、视频等。在数据结构与算法中,数据元素是程序进行处理的一个独立的单位。数据元素可以包含若干子项目,称为数据项。在不同的问题领域,数据元素包含的数据项可能有所不同。
数据结构的研究对象为问题中数据元素及其相互关系。具体来说,数据结构的研究内容包括数据的逻辑结构、数据的存储结构、数据的运算3个方面。
数据的逻辑结构指数据之间的逻辑关系。
数据元素的逻辑结构可以分两大类:线性结构与非线性结构。
数据的存储结构是指数据元素及数据元素的关系在计算机中的存储(或表示),也叫做数据的物理结构。在数据的存储结构中,不仅要把数据元素存储起来,还要把数据元素之间的关系表达出来。
数据的运算是指广义上的运算,不同的数据结构往往具有不同的运算实现。
对于同一种运算,在不同的数据结构中有着不同的实现方法,且效率也有较大的差异。如在顺序存储的线性结构中实现查找运算效率较高,但是实现插入和删除运算效率较低;而在链式存储的线性结构中实现查找运算效率较低,但是实现插入和删除运算效率较高。
在数据结构的二元组表示方法中,将数据结构形式定义为一个二元组(D,R),D是数据元素的有限集合,R是D上关系的有限集合。其中关系的表示方法如下:如x、y是D中的两个数据元素,用有序对<x,y>表示数据元素x和y之间的关系,x是有序对<x,y>的第一个元素,y是有序对<x,y>的第二个元素。
在学生信息表中,如果用d1、d2、d3和d4分别表示学号为20150101、20150102、20150103和20150104的4位学生,则学生信息表的二元组表示为<D,R>,其中D={d1,d2,d3,d4},R={<d1,d2>,<d2,d3>,<d3,d4>}。
数据结构的二元组表示不是很直观。用图形表示数据结构是一种较直观的方法。
线性结构示意图
树形结构示意图
图形结构示意图
用图形表示数据结构比较形象、直观,方便讨论问题,故常常被人们使用。