1.1.1数据结构的定义:
数据:描述客观事物的数值,字符以及所有能输入计算机中并能被计算机识别和处理的符号的集合,是计算机操作对象的总称。
数据元素:数据的基本单位,也称元素、结点、记录。
数据项:具有独立含义的数据最小单位,也称成员、域。
数据对象:是性质相同的有限个数据元素的集合,是数据的一个子集。默认情况下,数据结构中的数据都指数据对象。
数据结构:指所涉及的数据元素的集合以及数据元素之间关系构成的结构,可以把数据结构看成带结构的数据元素的集合。
个人理解,数据结构=数据对象+结构。
数据结构主要包括三个方面:
1.数据逻辑结构:由数据元素之间的逻辑关系构成,是数据结构在用户面前呈现的形式。
2.数据存储(物理)结构:指数据元素及其关系在计算机内的存储方式。
3.数据运算:指施加在该数据上的操作。
1.1.2数据的逻辑结构
数据的逻辑结构主要是从数据元素之间的相邻关系考虑的,通常采用二元组表示数据的逻辑结构,如:
B=(D,R),其中B是一种逻辑数据结构,D是数据元素的集合,R是数据元素之间所有关系的集合。
R中某个关系r是序偶的集合,对r中的任一序偶<x,y>,把x叫做第一元素,y叫做第二元素,第一元素是第二元素的前驱元素,第二元素是第一元素的后继元素。若某个元素没有前驱元素,就称为开始元素,若没有后继元素,就称为终端元素。如果x,y的顺序可以调换,可以用()代替<>。
逻辑结构的类型:集合(数据元素无关系),线性结构(一对一),树形结构(一对多),图形结构(多对多)。
1.1.3数据的存储结构
数据的存储结构的基本目标是将数据元素以及数据元素之间关系存储到计算机中,逻辑结构是存储结构的本质,数据的存储其实就是数据逻辑结构到存储器的映射。
存储结构的类型:顺序存储结构,链式存储结构,索引存储结构,哈希(散列)存储结构。
1.1.4数据的运算
数据运算包括功能描述(运算功能)和功能实现(运算实现),前者是基于逻辑结构,是用户定义的,抽象的,后者是基于存储结构,通过计算机语言或伪码表示的,是详细的。
1.1.5数据结构和数据类型
数据类型:是一组性质相同的值的集合和定义在该集合上一组操作的总称。
二者关系:数据结构是计算机处理的数据元素的组织形式和相互关系,数据类型是某种程序设计语言中已实现的数据结构。在这些数据类型的支持下,又可以构造出新的数据结构。
抽象数据类型:指用户从问题的数学模型中抽象出来逻辑数据结构和运算,不考虑计算机具体存储结构和运算的具体实现的算法。这意味着只关心数据结构做什么而不是如何实现。
一个具体问题的抽象数据类型定义包括:数据对象,数据关系和基本运算。
抽象数据类型又两个重要特征:数据抽象和数据封装。