第四话:数据的逻辑结构
2012-06-06 00:00
976 查看
数据结构作为一门学科主要研究数据的各种逻辑结构和存储结构,以及对数据的各种操作。因此,主要有三个方面的内容:
数据的逻辑结构;
数据的物理存储结构;
对数据的操作(或算法)。
“通常,算法的设计取决于数据的逻辑结构,算法的实现取决于数据的物理存储结构。” 这句话怎么理解呢?
先看看什么是逻辑结构咯,还有对逻辑结构的一些分类咯。
逻辑结构:是指数据对象中数据元素之间的相互关系。
其实这也是我们今后最需要关注的问题。逻辑结构分为以下四种:
集合结构。集合中任何两个数据元素之间都没有逻辑关系,组织形式松散。
线性结构。线性结构中的结点按逻辑关系依次排列形成一个“锁链”。
树形结构。树形结构具有分支、层次特性,其形态有点象自然界中的树。
图状结构。图状结构中的结点按逻辑关系互相缠绕,任何两个结点都可以邻接。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201505/cd560d84ca8fbcf31e82b7f1037a5a65.png)
如果将紧密相关的数据组合到一个集合中,则能够更有效地处理这些紧密相关的数据。代替编写不同的代码来处理每一单独的对象,您可以使用相同的调用代码来处理一个集合的所有元素。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201505/129a475b79d52024b9ce85c780a9e9b4.png)
线性结构中的数据元素之间是一种线性关系,数据元素一个接一个地排列。如排除的队列、表格中一行行的记录等。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201505/c6fdeab9d7e09bba8286ab2cf5d3d49e.png)
树形结构是一层次的嵌套结构。一个树形结构的外层和内层有相似的结构,所以,这种结构多可以递归的表示。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201505/eca3de1136baa55c4d8e0349242bff3a.png)
图形结构的数据元素之间存在着多对多的关系,也称网状结构。
从上面的例子也可以看出,逻辑结构是针对具体问题的,是为了解决某个问题, 在对问题理解的基础上,选择一个合适的数据结构表示数据元素之间的逻辑关系。
第一话:你的数据结构怎么学的?
第二话:数据结构的历史与来由
第三话:关于数据结构的一些概念
第四话:数据的逻辑结构
第五话:数据的物理结构
第六话:关于数据类型
第七话:抽象数据类型ADT
第八话:补充数据结构基本概念的关系
第九话:数据结构与算法的关系
第10话:什么是算法?
第11话:算法的五个基本特征
第12话:什么样的算法才是好算法
第13话:算法的性能分析
第14话:如何计算算法的时间复杂度
第15话:算法的最坏情况与平均情况
第16话:算法的空间复杂度
数据的逻辑结构;
数据的物理存储结构;
对数据的操作(或算法)。
“通常,算法的设计取决于数据的逻辑结构,算法的实现取决于数据的物理存储结构。” 这句话怎么理解呢?
先看看什么是逻辑结构咯,还有对逻辑结构的一些分类咯。
逻辑结构:是指数据对象中数据元素之间的相互关系。
其实这也是我们今后最需要关注的问题。逻辑结构分为以下四种:
集合结构。集合中任何两个数据元素之间都没有逻辑关系,组织形式松散。
线性结构。线性结构中的结点按逻辑关系依次排列形成一个“锁链”。
树形结构。树形结构具有分支、层次特性,其形态有点象自然界中的树。
图状结构。图状结构中的结点按逻辑关系互相缠绕,任何两个结点都可以邻接。
1. 集合结构
集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。各个数据元素是“平等”的,它们的共同属性是“同属于一个集合”。数据结构中的集合关系就类似于数学中的集合。![](https://oscdn.geek-share.com/Uploads/Images/Content/201505/cd560d84ca8fbcf31e82b7f1037a5a65.png)
如果将紧密相关的数据组合到一个集合中,则能够更有效地处理这些紧密相关的数据。代替编写不同的代码来处理每一单独的对象,您可以使用相同的调用代码来处理一个集合的所有元素。
2. 线性结构
线性结构:线性结构中的数据元素之间是一对一的关系。![](https://oscdn.geek-share.com/Uploads/Images/Content/201505/129a475b79d52024b9ce85c780a9e9b4.png)
线性结构中的数据元素之间是一种线性关系,数据元素一个接一个地排列。如排除的队列、表格中一行行的记录等。
3. 树形结构
树形结构:树形结构中的数据元素之间存在一种一对多的层次关系。![](https://oscdn.geek-share.com/Uploads/Images/Content/201505/c6fdeab9d7e09bba8286ab2cf5d3d49e.png)
树形结构是一层次的嵌套结构。一个树形结构的外层和内层有相似的结构,所以,这种结构多可以递归的表示。
4. 图形结构
图形结构:图形结构中的数据元素是多对多的关系。![](https://oscdn.geek-share.com/Uploads/Images/Content/201505/eca3de1136baa55c4d8e0349242bff3a.png)
图形结构的数据元素之间存在着多对多的关系,也称网状结构。
从上面的例子也可以看出,逻辑结构是针对具体问题的,是为了解决某个问题, 在对问题理解的基础上,选择一个合适的数据结构表示数据元素之间的逻辑关系。
延伸阅读
此文章所在专题列表如下:第一话:你的数据结构怎么学的?
第二话:数据结构的历史与来由
第三话:关于数据结构的一些概念
第四话:数据的逻辑结构
第五话:数据的物理结构
第六话:关于数据类型
第七话:抽象数据类型ADT
第八话:补充数据结构基本概念的关系
第九话:数据结构与算法的关系
第10话:什么是算法?
第11话:算法的五个基本特征
第12话:什么样的算法才是好算法
第13话:算法的性能分析
第14话:如何计算算法的时间复杂度
第15话:算法的最坏情况与平均情况
第16话:算法的空间复杂度
相关文章推荐
- 数据结构基本概念和术语:位、字节、字、位串、元素、数据域、物理结构、逻辑结构
- 逻辑结构、物理结构、数据类型、ADT、线性表
- 数据结构(三):非线性逻辑结构-树
- 大数据DTSpark"蘑菇云"行动之 第四课:零基础彻底实战Scala控制结构
- 数据结构教程 第四课 算法效率的度量和存储空间需求
- Oracle逻辑存储结构---(一) 数据块
- 数据的逻辑结构和物理结构
- B树索引+B树索引逻辑结构图+B树索引是怎么搜索数据+创建B树索引
- B树索引+B树索引逻辑结构图+B树索引是怎么搜索数据+创建B树索引
- 逻辑数据结构和存储数据结构
- asp.net中的三层结构体系显示层/逻辑层/数据层
- 数据的逻辑结构
- 数据的逻辑结构和物理结构(存储结构)
- 数据结构(二):数据结构的 逻辑结构 和 物理结构
- HBase 快速入门之 --数据模型(逻辑结构)
- 【读书笔记】数据结构(1)——逻辑结构与物理结构。
- oracle之逻辑数据库结构概述(表空间、段、数据拓展和数据块)
- 数据的逻辑结构和数据的物理结构
- ORACLE 数据存储结构之逻辑存储结构
- 四、MongoDB数据服务的逻辑结构