数据机构是指相互之间存在一种或者多种特定关系的数据元素的集合。数据结构包括三个组成成分:数据的逻辑结构、数据的存储结构、数据的运算结构。
数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构。包括:
1 集合结构 (数据结构中的元素同属一个集合)
2 线性结构(数据结构中的元素一对一的相互关系)
3 树形结构 (一对多的相互关系)
4 图形结构 (多对多的相互关系)
逻辑结构可形式化的定义为(D,R),D是数据元素的集合,R是D上关系的有限数据元素集合。例:设4个元素之间分别为A,B,C,D,那么,描述的数据结构可定义为:D={A,B,C,D},R={AB,BC,CD}。
数据的存储结构(物理结构):指数据的逻辑结构在计算机存储空间的存放形式。数据的物理结构是数据结构在在计算机中的表示,包括数据结构中元素的表示及元素间关系的表示。数据的存储结构包括:
1 顺序存储结构 (把逻辑上相邻的元素存储在物理位置相邻的存储单元中)
优点:随机存储任意元素;
缺点:插入、删除需大量移动元素;
2 链式存储结构 (把逻辑上相邻的元素存储在物理位置可相邻也可不相邻的存储单元中,借助指针来实现)
优点:插入、删除只需修改指针域即可;
缺点:不能随机存储元素;
3 索引存储结构 (除建立存储结点信息外,还建立附加的索引表来标识结点的地址)
4 散列存储结构 (根据结点的关键字直接计算出该结点的存储地址)
数据的存储结构实质是它的逻辑结构在计算机存储器中的实现。
数据的运算结构:算法的设计取决于逻辑结构,而算法的实现依赖于采用的存储结构。数据的运算是在数据的逻辑结构上定义的操作算法,如检索、插入、删除、更新、排序等。这样设计到很多的算法问题。
不同的数据结构其操作集不同,但下列操作必不可少:
1 结构的生成;
2 结构的销毁;
3 在结构中查找满足规定条件的数据元素;
4 在结构中插入新的数据元素;
5 删除结构中已经存在的数据元素;
6 遍历操作;
抽象数据类型:一个数学模型以及定义在该模型上的一组操作。抽象数据类型实际上就是对该数据结构的定义。因为它定义了一个数据的逻辑结构以及在此结构上的一组算法。抽象数据类型可用以下三元组表示:(D,S,P)。D是数据对象,S是D上的关系集,P是对D的基本操作集。
ADT抽象数据类型名{
数据对象:
数据关系:
基本操作:
}ADT抽象数据类型名
基本操作名(参数表){
初始条件:(初始条件描述)
操作结果:(操作结果描述)
}
一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。
常用的数据结构:
数组
栈
队列
链表
树
图
堆
散列表