(注意本部分的概述是为了后边更容易学习理解 但这个并不是关键)
计算机的主要功能是数据运算
目的:合理组织数据、高效率地实施数据运算
数据是信息的载体、数据的基本单位是数据元素
数据对象是具有相同类型的数据元素的集合
一个数据元素可以分成很多歌数据项(可称为元素节点或者属性等)
例如在一个学生表单中:一条记录为数据元素 而该学生的姓名就是数据项
数据结构是相互之间存在一种或者多种关系的数据源的集合
数据逻辑结构: 数据元素之间的逻辑关系
数据存储结构:数据元素及逻辑关系在计算机存储器内的表示
数据运算:
例子:
一个学生表
逻辑结果(元素之间的逻辑关系):
集合(关系松散)
线性结构:一对一关系
树形结构:一对多
图形结构:多对多 也称为网状结构
逻辑结构可以用多种方式描述这里二元组描述最常见:
S=(D,R)
D={d|1<i<n}
R={r|1<j<m}
D 是元素集合 R为D->D之间的关系集合
<a,b> 有向关系 a为b的前驱元素b为a的后继元素 没有后继元素的元素为终端元素 反过来则为开始元素 处于中间的为内部元素
也可使用逻辑结构图表示逻辑关系(可以看出下面的逻辑结构图表示的是一个树形结构 一个元素(树节点)有多个后继元素(分支或者树叶))
存储结构:(存储表示、物理结构)
数据逻辑在计算机存储器当中的表示
一个数据逻辑可以使用多种存储结构:可根据问题规模和运算种类等因素适当选择
简要阐述:
顺序结构
物理存储上一级数据逻辑上均相邻的元素(将数据的逻辑结构直接映射到存储结构)
特点:节省存储空间 逻辑关系没有占用任何额外的空间
可实现元素的随机存储:时间复杂度:O(1)
缺点:不便于修改 删除 插入 (需要移动一系列元素)
链式存储:
无需占用一整片空间 但每个节点需要额外的空间保存前后驱节点元素的地址 逻辑相邻 但 存储结构不相邻
有点:便于修改 插入 删除 仅仅改结点的指针域即可
缺点:不可随机存取 需要额外的空间存储逻辑关系 (空间利用低)
索引存储:
索引表用于存储关键字和对应地址:通过二分查找索引表找到关键字,然后通过对应地址在数据表中找到该记录的数据
优点:查找效率高
缺点:需要建立索引表 增加时间空间开销
哈希(散列)存储结构:
通过哈希函数用关键字求得存储地址:
优点:查找速度快
适用于对数据能够进行快速查找插入的场合 采用该方法的关键是选择好的哈希函数 和处理冲突的方法
数据运算:包括运算的功能 和在存储结构上运算的实现 选择好的存储结构可以提高运算的效率
原文:https://www.cnblogs.com/webcyh/p/11320286.html