一、定义:
数据:数据时人们利用文字符号、数字符号以及其他规定的符号对现实世界的事物及其活动所做的抽象描述。(宏观定义)
数据是所有能被输入到计算机中,且能被计算机处理的符号的集合;(计算机角度)
所谓的处理:能被计算机识别,再次可以在计算机中储存或计算
数据元素:数据元素就是数据(集合)中的一个‘个体’,是数据的基本单位(数学中集合的元素)
数据对象:是性质相同的数据元素的集合,它是数据的一个子集;
数据结构:数据以及相互之间的联系;数据结构包括以下几个方面:
1、 数映射据元素之间的逻辑关系,即数据的运算(集合的映射)
2、 数据元素及其关系在计算机存储器中的存储方式,即数据的存储结构也称为数据的物理结构
3、 施加在该数据上的操作,即数据的运算;
二、数学表达式
对于一种数据结构,其逻辑结构总是唯一的,但是它可能对应多种存储结构,并且在不同的存储结构中,同一运算的实现过程可能不同。
数据结构的数学表达式,通常采用二元组表示:
B=(D,R)
其中B是一种数据结构,由集合D和D上的二元映射集合R组成;即:
D={di|0<=i<=+无穷} ;
R={rj|0<=j<=+无穷}
如果R中的一个人关系人r是序偶的集合:
x叫做序偶的第一节点,y叫第二节点
对称序偶: ,则
三、逻辑结构的类型
1、 集合
数据元素之间除了“同属于一个集合”的关系外,再无其他关系;即
R集合中的m=0;
2、 线性结构
数据结构中的节点之间存在一一对应关系;
顺序表就是一种典型的线性结构
3、 树形结构
逻辑结构的节点之间存在一对多的关系;
二叉树就是一种典型的树形结构
4、 图形结构
逻辑结构的节点之间存在多对多的关系;
四、存储结构类型
总的来说分为顺序映像和非顺序映像
1、 顺序存储结构
该结构是把逻辑上相邻的节点存储在物理位置上相邻的存储单元里,节点之间的逻辑关系由存储单元的邻接关系来体现;通常通过数组来描述的。
优点:节省存储空间,可实现对节点的随机存取
缺点:不便于修改,对于节点的插入、删除运算时,可能要移动一系列的节点
2、 链式存储结构
该结构不要求逻辑上相邻的节点在物理位置上也相邻,节点间的逻辑关系是由附加的指针字段表示的;通常由指针类型描述;
主要优点:便于修改,在进行插入、删除运算时仅需要修改相应节点的指针域;
缺点:存储空间的利用率低,不便于随机存取;
3、 索引存储结构
该结构通常是在存储节点信息的同时还建立附加的索引表。索引表的每一项称为索引项,索引项的一般形式是:(关键字、地址);
优点:大大提高数据的查找速度;可以对节点随机访问;在进行插入、删除运算时,运算效率较高;
缺点:存储空间的利用率低
4、 哈希(或散列)存储结构
该结构的基本思想是根据节点的关键字通过哈希函数计算出一个值,并将这个值作为该节点的存储地址。
优点:查找速度快
缺点:只存储节点的数据,不存储节点的逻辑关系;
只适用于对数据进行快速查找和插入的场合;
五、数据类型
数据类型是一个值的集合和定义在此集合上的一组操作的总称;
数据类型可分为:
1、 简单类型
每一个数据都是无法再分割的整体(就数据结构而言,简单类型无逻辑关系);
2、 结构类型
结构类型由简单类型和结构类型构成(数据结构是复合值的集合即复合值之间的逻辑关系)
六、抽象数据类型
抽象数据类型:用户进行软件系统设计时从问题的数学模型中抽象出来的逻辑数据结构和逻辑数据结构上的运算,而不考虑计算机的具体存储结构和运算的具体实现算法。
抽象数据类型的数学定义:ADT:{D,S,P},其中D是数据对象,S是D上的关系集,P是D中数据运算的基本运算集。
书写格式:
ADT 抽象数据类型名
{
数据对象:数据对象的定义
数据关系:数据关系的定义
基本运算:基本运算的定义
}