一.什么是数据结构
一般而言,在使用计算机解决一个具体的问题的时候大致需要进行以下几个步骤:
(1)从具体问题中抽象出一个适当的数学模型,确定数据模型
(2)设计一个解决数学模型的算法
(3)编写程序,运行并调试程序直至问题正确解决
寻求数据模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间的关系,然后用数学语言加以描述。因此,简单来说,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
二.基本概念与术语
我们一直在说数据数据,那数据究竟是什么呢?
1.数据结构的定义
数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称,是描述客观事物的数和字符的集合。
数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。在有些情况下,数据元素也称为元素、结点、顶点或者记录等。一个数据元素可以由若干个数据项组成。
数据项是具有独立含义的数据最小单位,也称为字段或域。
数据对象是指性质相同的数据元素的集合,它是数据的一个子集。
数据结构是指所有数据元素以及数据元素之间的关系,可以看作互相之间存在着某种特定关系的数据元素的集合。 通常包括:数据的逻辑结构、数据的存储结构、数据的运算
2.逻辑结构
数据的逻辑结构是从数据元素的逻辑关系上描述数据的,是指数据元素之间的逻辑关系的整体,通常是从求解问题中提炼出来的。在一定程度上可以看作是从具体问题抽象出来的数据模型。逻辑结构的类型通常有四类基本结构(1)集合:与数学中集合概念一致(2)线性结构:结构中的数据元素存在一对一的关系(3)树形结构:结构中的数据元素存在一对多的关系(4)图状结构或网状结构:存在多个对多个的关系
逻辑结构可以采用多种方式表示,常见的有图表与二元组等
图表
图表表示就是采用表格或者图形直接描述数据的逻辑关系。
二元组
二元组是一种通用的数据逻辑结构表示方式,表示如下
B=(D,R)
其中B是一种数据逻辑结构,它由数据元素的集合D以及D上的二元关系的集合R所组成,即:
D={
|
,
}
R={
|
,
}
其中,表示集合D中的第i个数据元素,n为D中数据元素的个数,若n=0,则D是一个空集。
表示集合R中的第j个关系,m为R中关系的个数,若m=0,则R是一个空集,表示集合D中的数据元素间不存在任何逻辑结构,彼此间是独立的。
R中的一个关系r是序偶的集合,对于r中任一序偶<x,y>,表示元素x和y之间是相邻的,即x在y之前,y在x之后,x称为该序偶的第一元素,y称为该序偶的第二元素,且x为y的直接前驱元素,y为x的直接后继元素。若某个元素没有前驱元素,则称该元素为开始元素;若某个元素没有后继元素,则称该元素为终端元素。