数据结构的三要素是:逻辑结构,物理结构,数据的运算。

逻辑结构:

分为线性结构个非线性结构。

线性结构就是有一一对应的关系的,如A-B-C,这三个字母就符合线性结构。

非线性结构就是集合,树,图。集合就是一些元素共同归位一类,如自然数集合;树就是有层次关系结构,如家族谱系树;图就是每个元素之间会有联系,如一座城市的地铁图。

非常重要的一个细节就是:运算会和逻辑结构有关,和物理结构无关。

物理结构:

也就是元素如何存储的,即存储结构。

又分为顺序结构,链式结构,索引结构,散列结构。

这四种结构各有优缺点:顺序虽然可以实现直接存取,但是对于空间的利用不充分;链式虽然很好利用了空间,但是得到元素只能顺序存取,这样很不方便,并且还要有额外的空间给指针;索引虽然是结合了上面两种的优缺点,但额外的索引表增加了内存损耗;散列结构不可避免会有冲突的危险。

数据运算:

运算包括定义实现。运算的定义是针对逻辑结构的,运算的实现是针对存储结构的。

举个例子:如果逻辑结构是线性的(A-B-C),物理结构是链式的(addr0[A]->addr2[B]->addr1[C]),运算的定义是找到B的前一个元素。B的前一个元素是A,但是如果实现起来,必须先找到addr0,再找addr2,确认了addr2中是B,就得到了A这个结果。但是如果这里的物理结构是顺序的,直接可以从addr0得到(B的前一个地址是addr0)。很明显两种不同的链式结构,同一种运算实现的方法是不同的。

数据结构三要素——逻辑结构和物理结构与数据运算之间的关系相关推荐

  1. 数据结构考研:数据结构的三要素:逻辑结构,存储结构,数据计算的详细区分与讲解(软件工程/计算机/王道论坛)

    一.问题背景 不管是计算机专业的考研初试还是工作面试,数据结构都是很重要的课程.而博主最近看的王道论坛2020的数据结构开篇就有数据结构的三要素:逻辑结构,存储结构,数据计算,而在数据结构的考研真题和 ...

  2. 【数据结构】数据结构三要素

    数据结构三要素 数据结构的三要素包括数据逻辑结构.数据存储结构和数据的运算. 数据逻辑结构 数据的逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据.它与数据的具体存储形式无关,是独立于计算机 ...

  3. 【数据结构】数据结构的基本概念(数据结构的三要素:逻辑、存储、运算)

    数据结构的基本概念 一.基本概念和术语 1.数据 2.数据元素 3.数据对象 4.数据类型 5.数据结构 二.数据结构三要素 1.数据的逻辑结构 2.数据的存储结构 3.数据的运算 三.习题 一.基本 ...

  4. DSt:数据结构的简介、最强学习路线(逻辑结构【数组-链表-栈和队列/树-图-哈希】、物理结构、数据运算【十大排序/四大查找-图三大搜索-树三大遍历】、高级算法【贪心/分治/动态规划】之详细攻略

    DSt:数据结构的简介.最强学习路线(逻辑结构[数组-链表-栈和队列/树-图-哈希].物理结构[元素/关系].数据运算[十大排序/四大查找-图三大搜索-树三大遍历].高级算法[贪心/分治/动态规划]) ...

  5. 从C语言的角度重构数据结构系列(一)-数据结构入门之逻辑结构与物理结构

    前言 数据结构,直白地理解,就是研究数据的存储方式. 我们知道,数据存储只有一个目的,即为了方便后期对数据的再利用,就如同我们使用数组存储 {1,2,3,4,5} 是为了后期取得它们的加和值,无缘由的 ...

  6. 自动驾驶年度激辩:量产由三要素驱动,本质是数据的军备竞赛 | MEET2022

    编辑部 整理自 MEET 2022 量子位 | 公众号 QbitAI "AI在自动驾驶上是应用科学,除了一些核心算法的开发,70%是智能驾驶工程化."" "特斯 ...

  7. (一)数据结构的起源,常见的名词解释,数据元素之间的关系

    何为数据结构? 待处理的数据以及数据之间的关系 数据元素之间一种或多种特定关系的集合 数据结构的起源 一开始计算机是计算数值用的,所以当人们使用计算机解决实际问题的时候,首先需要从具体问题中抽象出一个 ...

  8. 看这篇就明白大数据实时数仓、离线数仓、数据湖之间的关系

    数仓架构演变 20世纪70年代,MIT(麻省理工)的研究员致力于研究一种优化的技术架构,该架构试图将业务处理系统和分析系统分开,即将业务处理和分析处理分为不同层次,针对各自的特点采取不同的架构设计原则 ...

  9. 【数据结构】概述 - 逻辑结构与物理结构 - 附练习题

    嗨!~ 大家好,我是YK菌

最新文章

  1. linux环境变量管理器,运维 - linux(ubuntu) 环境变量管理 (持续更新)
  2. 【Python】青少年蓝桥杯_每日一题_7.03_输出符合要求的字母
  3. 【JavaScript】修改图片src属性切换图片
  4. JavaScript jQuery获取radio/下拉框的选中值
  5. sed 第n行后加入_【高新课堂】第一百三十九期Liunx运维17个实用技巧
  6. python中_new_和_init_的区别_Python 中的__new__和__init__的区别
  7. 接口怎么获取数组底下的数组_3分钟短文 | PHP数组获取最后一个元素,10个方式中哪个有错?...
  8. mfc 获取窗口在屏幕中的位置_CSocket与CAsynSocket中的阻塞与非阻塞
  9. ubuntu18.04安装ros-melodic
  10. (8)数据分析-卡方检验
  11. Coremail邮件安全:2022重保最新钓鱼案件典型攻击手法复盘
  12. Rust编程语言入门教程(二)-核心概念(所有权(Ownership) 和生命周期)、变量声明(遍历数组)
  13. 比尔·盖茨退休 留给全球商界意味深长的遗产
  14. 激发数据潜力,“东数西算”带动数据中心新发展
  15. 利用计算机技术全面规划供应,‍ ‍ 利用计算机及网络技术,全面规划供应链中的商流、物流、信息流、资金流等,并进行计划、组织、协调与控制。 ‍ ‍...
  16. 深度相机(八)--OpenNI及与Kinect for windows SDK的比较
  17. 如何快速将纸质书转成pdf或Word电子档
  18. 使用jsp+servlet实现增加和删除
  19. 插入图片与背景图片的区别
  20. 代码随想录训练营day9

热门文章

  1. 【Java AWT 图形界面编程】使用鼠标滚轮缩放 Canvas 画布中绘制的背景图像 ( 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )
  2. LauncherModel.Callbacks接口
  3. mysql全备份xtrabackup(innobackupex)方式
  4. zabbix监控——监控应用
  5. 公众号文章、底部菜单栏添加关键词自动回复跳转到往期文章或者外部网站等页面?
  6. 启动计算机配置windows7,win7开机显示准备配置Windows请勿关闭计算机 然后无限重启怎么回事...
  7. 公众号菜单关联小程序
  8. 数据分析 第八篇:OLS回归分析
  9. 《十天学会C++——范磊主讲》读书笔记
  10. oracle 归档日志文件archieve log