数据结构(用面向对象方法与C++描叙)
数据(data):是信息的载体,是描述客观事物的数、字符、以及所有能输入到计算机中,被计算机程序识别和处理的符号的集合。
(1)数值性数据
(2)非数值性数据
数据元素(data element): 又称为元素、结点、记录,是数据的基本单位,在计算机程序中常作为一个整体进行考虑和处理。一个数据元素可以由若干数据项组成。
数据项(Data Item):是具有独立含义的最小标识单位,用来表示数据元素在某一方面的属性.
(1)初等项:在数据处理时不能再分割的最小单位。
(2)组合项:可以划分为更小的项。
数据对象(data object):数据对象是具有相同性质的数据元素的集合。
(1)数值型数据对象:如整数数据对象N = { 0, ±1, ±2, … }
(2)非数值型数据对象:如学生数据对象.
数据结构(data structure):指某一数据对象及该对象中所有数据成员之间的关系,是数据的组织形式.记为:
Data_Structure = {D, R}
其中,D 是某一数据对象,R 是该对象中所有数据成员之间的关系的有限集合。
(1)依据数据成员之间的关系不同来分:
①线性结构:如线性表
②非线性结构:如多维数组、广义表、树、图(或网络).
(2)依据视点的不同来分:
①数据的逻辑结构:数据元素间的逻辑关系,与数据的存储无关,可以看作是从具体问题抽象出来的数据模型,与数据元素本身的形式、内容无关.
②数据的存储表示:数据元素及其关系在计算机存储内的表示. 依赖于计算机语言, 是逻辑结构用计算机语言的实现.
a.顺序存储表示
b.链接存储表示
c.索引存储表示
d.散列存储表示
数据的运算:即对数据元素施加的操作。
数据类型:一组性质相同的值的集合, 以及定义于这个值集合上的一组操作的总称. 数据类型就是数据结构,不过它是从编程者的角度来使用的。数据类型是模板,必须定义属于某种数据类型的变量,才能参加运算。
(1)基本数据类型:可以看作是计算机中已实现的数据结构。
C语言中的基本数据类型
char int float double void
字符型 整型 浮点型 双精度型 无值
(2)构造组合类型:如数组型、构造型、文件型.
(3)抽象数据类型(ADTs: Abstract Data Types):由用户定义,用以表示应用问题的数据模型,由基本的数据类型组成, 并包括一组相关的服务(或称操作),特征是:使用与实现相分离,实行数据封装和信息隐蔽.
例如:自然数的抽象数据类型定义
ADT NaturalNumber is
objects: 一个整数的有序子集合,它开始于0,结束于机器能表示的最大整数(MaxInt)。
Function: 对于所有的 x, y Î NaturalNumber; False, True Î Boolean, +、-、<、==、=等都是可用的服务。
Zero( ) : NaturalNumber 返回自然数0
IsZero(x) : if (x==0) 返回True
Boolean else 返回False
Add (x, y) : if (x+y<=MaxInt)返回 x+y
NaturalNumber else 返回MaxInt
Subtract (x, y) : if (x < y) 返回 0
NaturalNumber else 返回 x - y
Equal (x, y) : if (x==y) 返回True
Boolean else 返回 False
Successor (x) : if (x==MaxInt) 返回 x
NaturalNumber else 返回 x+1
end NaturalNumber