哇,超不爽的,刚开始写,内容有点乱。这一篇应该和上一篇的部分内容配合食用,效果才对。
上一篇:是什么?主要研究什么?为什么要学?
01
基本概念和术语
数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素是数据的基本单位,在计算机程序中,通常作为一个整体进行考虑和处理,一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。例如:学生成绩记录由“学号”,“姓名”以及各科成绩组成,一个学生成绩记录就是一个数据元素,其中的“学号”,“姓名”以及各科成绩都是数据项。
数据对象是性质相同的数据元素的集合,是数据的一个子集。
数据结构数据结构是相互之间存在的一种或多种特定关系的数据元素的集合。在任何问题中,数据元素都不是孤立存在的,而是在它们之间存在着某种关系,这种数据元素相互之间的关系称为结构。根据数据元素之间的关系的不同特性,通常有下列4类基本结构:
集合
结构中的数据元素除了“属于同一个集合”的关系外,别无其他关系。
图1-集合
线性结构
结构中的数据元素之间存在一个对一个的关系。像珍珠项链一样串起来的就是线性结构啦。
图2-线性结构
树形结构
结构中的数据元素之间存在一个对多个的关系
图3-树状结构
图状结构或网状结构
结构中的数据元素之间存在多个对多个的关系。
图4-网状结构或图状结构
啊,机智的你没有看错,图4就是图3改的,就是把图三里面的结点连起来了而已。因为我太懒了,关键是图真不好画。
树与图之间还是有关系的,不过,我也不是很懂。就留给你去探索吧。
02
数据类型
类型明显或隐含地规定了在程序执行期间变量或表达式所有可能取值的范围。
按“值”不同特性,高级程序语言中的数据类型可分为两类:
一类是非结构的原子类型。原子类型是不可分解的,例如C语言中的基本类型(整型、实型、字符型)、指针类型和空类型。
另一类是结构类型。结构类型的值是由若干成分按照某种结构组成的,因此是可以分解的,并且它的成分可以是非结构的,也可以是结构的。在某种意义上,数据结构可以看成是“一组具有相同结构的值”,则结构类型可以看成是由一种数据结构和定义在其上的一组操作组成。
03
抽象数据类型
抽象数据类型(abstractdatatype简称ADT)是指一个数学模型以及定义在该模型上的一组操作。抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关,即不论其内部结构如何变化,只要它的数据特性不变,都不影响其外部的使用。
抽象数据类型和数据类型实质上是一个概念。另一方面,抽象数据类型的范畴更广,它不再局限于处理器、语言中已经定义并实现的数据类型,还包括用户在设计软件系统时自己定义的数据类型。
近代程序设计方法学中指出,一个软件系统的框架应建立中数据之上,而不是建立在操作之上。抽象数据类型类型的定义由一个值域和定义在该值域上的一组操作组成。若按其值的不同特性,可细分为下列三种类型:
原子类型属原子类型的变量的值是不可分解的,这类抽象数据类型较少,因为一般情况下,已有的固有数据类型足以满足需求。但有时也有必要定义新的原子数据类型,例如数位为的整数。
固定聚合类型属该类型的变量,其值由确定树木的成分按某种结构组成。例如,复数是由两个实数依确定的次序关系构成。
可变聚合类型和固定聚合类型相比较,构成可变聚合类型“值”的成分的数目不确定。
后两种类型统称为结构类型。
抽象数据类型可用以下三元组表示(D,S,P)。其中D是数据对象,S是D上的关系集,P是对D的基本操作集。
懒懒的我。这一节的内容主要就是摘抄了严蔚敏《数据结构》上的内容。
下期预告:从下期开始,就开始介绍具体的结构了。
赞赏