文章目录

  • 数据结构
    • 逻辑结构
      • 集合结构
      • 线性结构
      • 树状结构
      • 网络结构(图形)
    • 物理结构(存储)
      • 顺序存储结构
      • 链式存储结构
      • 索引存储结构
      • 散列存储结构(哈希)
    • 数据结构对性能的影响

数据结构

数据结构有两个概念、逻辑结构,物理结构(存储)
逻辑结构:描述数据节点之间的关系。
物理结构:描述数据在内存中是如何存储的(分配内存空间)。

逻辑结构

集合结构,线性结构,树状结构,网络结构(图形)

集合结构

数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系;

线性结构

元素存在一对一的相互关系

树状结构

元素存在一对多的相互关系

网络结构(图形)

元素存在多对多的相互关系

物理结构(存储)

物理结构又叫存储结构,分为以下四种:
顺序存储结构:顺序存储结构。
非顺序存储结构:链式存储结构、索引结构、散列结构。

顺序存储结构

数据存储内存空间是连续的

链式存储结构

数据存储内存空间是不连续的

索引存储结构

分别存放数据元素和元素间关系的存储方式,存在索引(index)用以检索数据

散列存储结构(哈希)

分别存放数据元素和元素间关系的存储方式,将关键码(key)经函数映射后(通常为 hash)得到数组索引(index),根据数组特性,通过 index 即可得到数据存储地址(addr)

// Java hashMap 映射函数 i:index , n:table.length , hash:hashcode
i = (n - 1) & hash

数据结构对性能的影响

(1)检索。检索就是在数据结构里查找满足一定条件的节点。一般是给定一个某字段的值,找具有该字段值的节点。 [3]
(2)插入。往数据结构中增加新的节点。
(3)删除。把指定的结点从数据结构中去掉。
(4)更新。改变指定节点的一个或多个字段的值。
(5)排序。把节点按某种指定的顺序重新排列。例如递增或递减。

通常,评估一种数据结构会有如下指标:

  1. 常用数据操作(随机情况下)的速度(查询、插入、删除、修改、排序);
  2. 内存利用率,内存扩展性;
  3. 存储密度;
  4. 存储数据类型是否灵活;
  5. 随机访问性如何(影响数据操作速度即时间复杂度);

最终,一种数据结构的性质表现,会由逻辑结构,存储结构,加其额外定义的规则决定(如栈,限制了只允许栈顶对数据进行操作)。同一存储结构也会因为不同的定义导致差异(如无序数组插入速度比有序数组快,因为无序数组直接在队尾插入数据,不需要挪动数据的位置),也就是说得具体问题还得具体分析。

数组,随机插入数据则时间复杂度为O(n),只在队尾插入则为O(1) ,所有答案如何全看前提条件是什么。

数据结构(一)逻辑结构和存储结构相关推荐

  1. 数据结构之逻辑结构与存储结构

    转自逻辑结构和存储结构 百度百科:数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构.结合今天在复习过程中新的理解,主要总结一下逻辑结 ...

  2. 数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型的概念

    数据: 是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称.如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形.图像.声音.动画等通过特殊编码定义后的数 ...

  3. 简述数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型

    1.数据:描述客观事物的数字.字符以及能输入机器且被处理的各种符号的集合. 2.数据元素:数据元素是组成数据的基本单位,通常称为记录. 3.数据项:不可分割的最小单位,具有独立含义. 3.数据对象:性 ...

  4. 【数据结构】数据结构的基本概念——逻辑结构、存储结构、抽象数据类型

    文章目录 一.基本概念和术语? 1.数据 2.数据元素 3.数据项(属性.字段) 4.数据对象 5.数据结构 二.逻辑结构和物理结构(存储结构) 1.逻辑结构 1)定义 2)分类(线性结构和非线性结构 ...

  5. 什么是数据结构以及数据结构的存储方式、逻辑结构和存储结构的关系、数据结构的运算、逻辑结构的四种基本类型

    一.什么是数据结构 1.数据结构的起源         数据结构不是研究数值计算的这些是数学家应该研究的问题,它是研究计算机存储.组织数据的方式问题的学科,数据结构会影响算法的效率,合适的数据结构可以 ...

  6. 数据结构32:树存储结构

    之前介绍的所有的数据结构都是线性存储结构.本章所介绍的树结构是一种非线性存储结构,存储的是具有"一对多"关系的数据元素的集合. (A)                       ...

  7. 三、逻辑结构与存储结构的区分

    一.问题背景 不管是计算机专业的考研初试还是工作面试,数据结构都是很重要的课程.而博主最近看的王道论坛2020的数据结构开篇就有按照逻辑结构和存储结构将各种数据结构进行分类,本文就结合所有知识点充分讲 ...

  8. 数据的逻辑结构和存储结构

    数据的逻辑结构合存储结构 一,逻辑结构 数据的逻辑结构是对数据元素之间逻辑关系的描述,它与数据在计算机中存储方式无关,根据数据元素之间的不同特性,可以对数据的逻辑结构进行分类 分类1:(选型结构和非线 ...

  9. 数据结构之树的存储结构

    数据结构之树的存储结构 思维导图 双亲表示法: 增 删 孩子表示法: 孩子兄弟表示法:(重要) 森林和二叉树的转化 思维导图 双亲表示法: 增 增加M.L节点 删 删除G节点(叶节点) 删除(非叶节点 ...

最新文章

  1. SAP RETAIL MM42进入商品的销售视图系统提示: No basic purchase price relevant to pricing found with schema RM0000
  2. c++ 数组指针形参,并返回数据
  3. echart 饼图设置指引线_EXCEL中把饼图砍一半,美观程度瞬间提升
  4. 小程序云开发搜索功能的实现正则_几行代码实现小程序云开发提现功能
  5. 《深度学习》课程视频(含30份资料)
  6. java maven 没有target_Maven最全知识点总结 可以收藏啦
  7. 用C#实现仿Ruby的XML Builder
  8. 牛客练习赛 60(待补E-长链剖分或者dsu)
  9. 从 class 文件 看 synchronize 锁膨胀过程(偏向锁 轻量级锁 自旋锁 重量级锁)
  10. Java Package getPackage()方法与示例
  11. 【CCCC】PAT : 团体程序设计天梯赛-练习集 L2 答案,题解,附代码
  12. linux 端口映射 命令,linux查看端口映射命令
  13. 关于NI CompactRIO自定义模块中FPGA与Labview FPGA中编程的一点理解
  14. BIOS升级,差一点也不行
  15. 微信小程序无法看视频
  16. 桌面运维之CMD命令
  17. mybatis中count(*)与count (*)的区别
  18. 学习新的计算机语言的方法
  19. Proteus 8 Professional安装教程
  20. 百度地图API-实现底图切换

热门文章

  1. 智能手环体验:UP24
  2. BOSCH汽车工程手册————自适应巡航速度控制ACC
  3. intellij idea 修改文件后,文件夹路径也变为蓝色
  4. Data Wrangling数据处理
  5. 移动端cpu天梯图2023 移动端cpu性能排行榜 手机CPU天梯图2023年3月最新版
  6. sap 标准委外和工序委外_SAPPP-SAP委外工序业务配置及操作手册.doc
  7. 温度敏感材料干燥过程中的温度和真空度精密控制解决方案
  8. 无法定位程序输入点 except_吉林财务公司服务商,ai拍图识字识物小程序开发_绘政科技...
  9. [高维随机矩阵-2] 特征值和特征向量
  10. mac更换ssd 硬盘分区 移动硬盘WTG安装win10