1.3哎呀,术语和基本概念
对于术语和基本概念,如果说我对它有什么感情的话,那么我所持的感情是复杂而矛盾的,因为你不知道它们的话,那么你会发现后面的文字里充斥着这些奇奇怪怪的东西,到时候你将寸步难行。按照一般经验,它们通常以一种高大上和不接地气的描述方式给出,让我们对其无比的敬畏以及无尽的鄙视,因为,乍一眼看上去,还有些看不懂。不论如何,“如果痛苦已经降临,那就祈求它快点过去。”
数据(data):一切能输入到计算机中并能被计算机程序识别和处理的符号集合。(主要在于输入、识别和处理三个词)
—数值数据:各种数如整数,自然数等
—非数值数据:图形、声音、文本、图像等等
数据元素(dataelement):从名字中的元素(element)这个词可以知道,数据元素是数据的基本单位,在程序中我们通常将其作为一个整体对待,如树中的格局和图中的点就是数据元素。这里还要提出数据项(dataitem)这个概念,若干个数据项组成数据元素,例如成绩单中的一行是数据元素,姓名和学号等就是数据项,数据项是不可分割的最小单位。
数据对象(dataobject):性质相同的数据元素的集合。由上图可知,它是数据的一个子集。如整数数据对象就是N={……-1,0,1,2……}
数据结构(datastructure,DS):简单来看,DS也可以作为一个集合来看待:相互之间存在一种或多种特定关系的数据元素的集合。(见严、吴老师的《数据结构》第五页)在非数值问题中,以计算机的观点来看,我们所处理的对象就是数据元素,它们之间存在某种关系,而这种数据元素之间存在的关系我们将其称为结构(structure),通常有4类基本结构,有三个我们已经见到过了,对于数据元素有:
集合:同属于一个集合,再没其他关系。
线性结构:存在一对一的关系,例1.1中的表。
树形结构:存在一对多的关系,例1.2中的树。
图状结构或网状结构:存在多对多的关系,例1.3中的图。
1.2的开始我们提到了计算机如何解决问题,要从具体问题中的抽象出数学模型,其实就是在对问题进行分析后,提取出要操作的对象,并搞清楚他们之间的关系,以数学的语言表达出来,对应到数据结构的术语来,其实就是描述出数据元素之间的关系,这种“关系”进一步说是一种逻辑关系,因此又称为数据的逻辑结构。
我们继续向下走,抽象出数学模型,得到数据结构之后,还有工作要做,我们需要把它在计算机里表示出来,我们称其为数据的物理结构,因为数据是存储在计算机里的,所以也叫作存储结构。这样数据元素和它们之间的关系才存入了计算机。接下来又要引出几个概念:
我们知道,在计算机里存储信息的最小单位是二进制的一位称为位(bit),若干位可以组合成为一个位串,我们用位串表示一个数据元素(不同的数据元素使用不同的位数,如整数用一个字长表示,字符用8位表示),通常称位串为元素(element)或结点(node)。
数据元素有可能有若干个数据项组成,对应于各个数据项的子位串称为数据域(datafield)。
这里介绍一下两种基本的存储结构,了解他们的概念:
—顺序存储结构:用一组连续的存储单元一次存储数据元素,数据元素之间的逻辑关系由元素的存储位置表示。(图片来自网络,侵权删除)
—链式存储结构:用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针表示。(图片来自网络,侵权删除)
赞赏