数据结构(逻辑结构和存储结构)
一、逻辑结构:
- 逻辑结构分为四种类型:集合结构,线性结构,树形结构,图形结构。
集合结构:表面意思,没有什么深刻意义,就是数据元素同属一个集合,单个数据元素之间没有任何关系。如下图所示。
线性结构:类似于线性关系,也就是说,线性结构中的数据元素之间是一对一的关系。注意:重点在一对一。如下图所示。
树形结构:树形结构中的数据元素之间存在一对多的关系。(各元素及元素关系所组成图形类似于树状图)。注意:关系为一对多。如下图所示。
图形结构:数据元素之间是多对多的关系。如下图所示。
总结以上几点:用示意图表示数据结构的逻辑关系时要注意:
1.将每一个元素看作为一个结点,用圆圈表示。
2.将各个元素之间的关系用结点之间的连线表示,如果该关系有方向,则用带箭头的连线表示。
二、物理结构(存储结构):
物理结构又叫存储结构,分为四种种,顺序存储结构、链式存储结构、索引结构、散列结构。
1.顺序存储结构:
一段连续的内存空间。
优点:随机访问
缺点:插入删除效率低,大小固定
2.链式存储结构:
不连续的内存空间
优点:大小动态扩展,插入删除效率高
缺点:不能随机访问。
3.索引存储结构:
为了方便查找,整体无序,但索引块之间有序,需要额外空间,存储索引表。
优点:对顺序查找的一种改进,查找效率高
缺点:需额外空间存储索引
4.散列存储结构:(哈希=散列)
选取某个函数,数据元素根据函数计算存储位置可能存在多个数据元素存储在同一位置,引起地址冲
优点:查找基于数据本身即可找到,查找效率高,存取效率高。
缺点:存取随机,不便于顺序查找。
数据结构(逻辑结构和存储结构)相关推荐
- 数据结构--逻辑结构和存储结构区别和内容
转载博客地址:http://c.biancheng.net/view/7524.html 1.逻辑结构 逻辑结构是指数据元素间抽象化的相互关系,与数据的存储无关,独立于计算机,它是从具体问题中抽象出来 ...
- 数据结构 - 逻辑结构和存储结构
程序=算法+数据结构 N.沃思(Niklaus Wirth)教授提出: 程序=算法+数据结构 以上公式说明了如下两个问题: (1)算法决定如何构造和组织数据(算法→数据结构). (2)算法的选择依赖于 ...
- 【数据结构】数据结构的基本概念——逻辑结构、存储结构、抽象数据类型
文章目录 一.基本概念和术语? 1.数据 2.数据元素 3.数据项(属性.字段) 4.数据对象 5.数据结构 二.逻辑结构和物理结构(存储结构) 1.逻辑结构 1)定义 2)分类(线性结构和非线性结构 ...
- 数据结构(一)逻辑结构和存储结构
文章目录 数据结构 逻辑结构 集合结构 线性结构 树状结构 网络结构(图形) 物理结构(存储) 顺序存储结构 链式存储结构 索引存储结构 散列存储结构(哈希) 数据结构对性能的影响 数据结构 数据结构 ...
- 数据结构之逻辑结构与存储结构
转自逻辑结构和存储结构 百度百科:数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构.结合今天在复习过程中新的理解,主要总结一下逻辑结 ...
- 什么是数据结构以及数据结构的存储方式、逻辑结构和存储结构的关系、数据结构的运算、逻辑结构的四种基本类型
一.什么是数据结构 1.数据结构的起源 数据结构不是研究数值计算的这些是数学家应该研究的问题,它是研究计算机存储.组织数据的方式问题的学科,数据结构会影响算法的效率,合适的数据结构可以 ...
- 三、逻辑结构与存储结构的区分
一.问题背景 不管是计算机专业的考研初试还是工作面试,数据结构都是很重要的课程.而博主最近看的王道论坛2020的数据结构开篇就有按照逻辑结构和存储结构将各种数据结构进行分类,本文就结合所有知识点充分讲 ...
- 数据的逻辑结构和存储结构
数据的逻辑结构合存储结构 一,逻辑结构 数据的逻辑结构是对数据元素之间逻辑关系的描述,它与数据在计算机中存储方式无关,根据数据元素之间的不同特性,可以对数据的逻辑结构进行分类 分类1:(选型结构和非线 ...
- 数据结构和数据存储结构
数据结构和数据存储结构 数据结构和数据存储结构是不同的:一个是逻辑概念上的一个是真实存储在计算机上的 数据的存储结构:顺序.链式.索引.散列 数据的存储结构是针对计算机来说的,指的是数据的逻辑结构在计 ...
最新文章
- CentOS安装oracleJDK
- 【异常-举例6:finally】
- 消息队列系列二(IOT中消息队列的应用)
- 【竞赛总结】CCF多人种人脸识别
- 没学c语言可以学python_学了Python,但是没有学c,直接去学c++是可行的吗?
- Pidgin cannot connect to MSN: the certificate chain presented is invalid
- 色鬼色狼和色仙的区别
- Sigmoid函数求导过程
- eos utility中文版v3.7.0
- MySQL数据库知识的总结
- 毕业设计开发板-基于C20S单片机恒温开发板
- 戴尔服务器提升性能,解析戴尔12G服务器的主要性能提升和改进
- 在线代码编辑器:Codeanywhere介绍
- JUC并发编程第十四篇,StampedLock(邮戳锁)为什么比ReentrantReadWriteLock(读写锁)更快!
- redhat,FC5,CentOS你装上了吗? 超简单硬盘安装redhat,FC5和CentOS
- Yapi使用(快速入门)
- 获取Redis所有Key / 删除指定前缀的Key
- 如何理解答案-Leo读提问的智慧(4)
- Kafka的ISR收缩机制
- 智能家居为我们主要提供什么服务,主要实现了什么功能
热门文章
- 【转】最大后验概率(MAP)- maximum a posteriori
- keep-alive:
- 虚拟机vmware去虚拟化过检测教程
- web(html运行)设置字体大小、样式及字体名称
- Anchor-based和Anchor-free优缺点对比
- 导学目录-学如逆水行舟
- URP——后期处理特效
- js 中的SetTimeOut()
- The_Last_Geass
- startup_stm32f10x_hd.S:1: Error: junk at end of line, first unrecognized character is `*‘