1.1.1~2 数据的逻辑结构、数据结构的运算
1.1.1 数据的逻辑结构
数据结构的概念
一个数据结构是由一组 同类的数据元素
依据 某种联系
组织起来的
数据的逻辑结构
数据元素间的逻辑关系描述
数据的逻辑结构(4种)—>抽象层
"""
1. 集合结构:数据元素间的次序是任意的。
1. 元素之间除"属于同一集合",无其他任何关系 (聚会中的所有人、火车上的乘客)
2. 如何存储?
1. 因为集合结构中的元素没有固有的关系,因此它的存储往往可以借助于其他结构,无须设计专门的集合结构
2. 线性结构:数据元素之间构成一个有序序列
1. 首元素之前没有首元素,尾元素之后没有尾元素,其余元素前后都有唯一的一个元素。(梁山好汉)
2. 前驱:当前元素之前的元素
3. 后继:当前元素之后的元素
3. 树状结构:数据元素之间形成一个层次关系
1. 除特殊的根元素之外,每个元素有且仅有一个前驱,后继无限,根元素无前驱(族谱:老祖宗为根元素)
4. 图状结构:图是最一般的逻辑结构
1. 图中的每个元素的前驱和后继无限(计算机网络的拓扑结构)
总结:
1. 集合结构、树状结构、图状结构 统称为 非线形结构
2. 逻辑结构是数据组织的本质。只要解决了本质问题就可以把解决方案用到各种应用中去,而不必分别对每个问题进行研究
3. 逻辑结构,两点特别说明:
1. 逻辑结构与数据元素本身的内容无关
1. 如在家谱系统中,不管如何描述一个人,人和人之间的关系总是树状的关系,当用name、sex、birthday描述 一个人时是树状关系,对每个人添加一张照片后还是树状关系
2. 逻辑结构与数据元素的个数无关
1. 家谱中增加或者删去某一个人,整个家谱还是一个树状结构
"""
1.1.2 数据结构的运算
每种逻辑结构都有一定的处理要求,这些处理要求称为数据结构的操作或运算
数据结构最常见的运算:
"""
1. 创建(create): 创建一个空的数据结构
2. 清除(clear): 删除数据结构中的所有数据元素
3. 插入(insert): 在数据结构指定的位置插入一个元素
4. 删除(remove):将数据结构中的某个元素删除
5. 搜索(search):在数据结构中搜索满足特定条件的数据元素
6. 更新(update):修改数据结构中的某个数据元素的值
7. 访问(visit):访问数据结构中的某个数据元素
8. 遍历(traverse):按照某种次序访问数据结构中的每一数据元素,是每个数据元素恰好被访问一次
注:
1. 每种数据结构还可包含一些特定的计算
1. 树状结构中,找某个元素的儿子/父亲的操作
2. 线形结构中,找某个元素的前驱或后继
2. 数据元素之间的逻辑关系和数据结构的运算是数据结构不可分割的两个方面
3. 一个数据结构就是针对某一个逻辑结构讨论数据的存储以及运算的实现,通常称为存储实现和运算实现
"""