合理地组织数据,高效地处理数据是数据结构的主要研究的问题。
1.1数据结构的研究内容
数据结构主要研究非数据计算问题,即无法用数学方法建立数学模型的问题,例如建立一张学生信息表(线性)、人机对弈(树)、最短路径(图)等等。
1.2基本概念和术语
1.2.1数据、数据元素、数据项、数据对象
数据:客观事物的符号表示,使所有能输入到计算机并被计算机程序处理的符号的总称。如数,字符串、图像。
数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。比如学生信息表中一名学生的信息,人机对弈时的一种状态,图中的一个顶点。
数据项:组成数据元素的、有独立含义的、不可分割的最小单位。例如,学生的 学号、姓名、年龄等等都是数据项。
数据对象:性质相同的数据元素的集合,是数据的一个子集。例如学生中大于20岁的集合。
1.2.2数据结构
数据结构是相互之间存在一种或多种特地关系的数据源的集合。
数据结构包括逻辑结构和存储结构两个层次。
1.逻辑结构
数据的逻辑结构是从逻辑关系上描述数据。可以看做是从具体问题中抽象出来的数学模型。
逻辑结构有两个要素:一是数据元素,二是关系。四种基本的逻辑关系:集合、线性‘、树、图。
2存储结构
数据对象在计算机中的存储表示称为存储结构。
数据元素在计算机中有两种基本的存储结构,分别是顺序存储结构(数组)和链式存储结构(链表)。
1.2.3数据类型和抽象数据类型
数据类型例如C语言中的整型、浮点型等等。抽象数据类型是用户自己定义的、表示应用问题的数据类型,C++中可以用类表示。
1.3抽象数据类型的表示与实现
举个例子:对复数进行操作。
①定义部分:
ADT Complex{
Creat(&C, x, y);
//构造复数C,实部为x,虚部为y
GetReal(C);
//返回实部