数据的存储结构可以分为以下四种:
(1)顺序存储方法
该方法把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。
由此得到的存储表示称为顺序存储结构 (Sequential Storage Structure),通常借助程序语言的数组描述。
 该方法主要应用于线性的数据结构。非线性的数据结构也可通过某种线性化的方法实现顺序存储。

(2)链接存储方法
该方法不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系由附加的指针字段表示。由此得到的存储表示称为链式存储结构(Linked Storage Structure),通常借助于程序语言的指针类型描述。

(3)索引存储方法
该方法通常在储存结点信息的同时,还建立附加的索引表。
索引表由若干索引项组成。若每个结点在索引表中都有一个索引项,则该索引表称之为稠密索引(Dense Index)。若一组结点在索引表中只对应一个索引项,则该索引表称为稀疏索引(Spare Index)。索引项的一般形式是:
(关键字、地址)

关键字是能唯一标识一个结点的那些数据项。稠密索引中索引项的地址指示结点所在的存储位置;稀疏索引中索引项的地址指示一组结点的起始存储位置。

(4)散列存储方法
该方法的基本思想是:根据结点的关键字直接计算出该结点的存储地址。

四种基本存储方法,既可单独使用,也可组合起来对数据结构进行存储映像。
同一逻辑结构采用不同的存储方法,可以得到不同的存储结构。选择何种存储结构来表示相应的逻辑结构,视具体要求而定,主要考虑运算方便及算法的时空要求,对数据采取不同的存储方式在很大程度上会决定相应算法的运行效率。

数据结构的简单理解(3)相关推荐

  1. 数据结构的简单理解(4)

    总结: 数据的逻辑结构.数据的存储结构及数据的运算这三方面是一个整体.孤立地去理解一个方面,而不注意它们之间的联系是不可取的. 逻辑结构可以分为:线性结构和非线性结构. 对于一些现实数据项,在讨论其数 ...

  2. 数据结构的简单理解(1)

    一直以来对数据结构都不是特别理解,前段时间正好看到一位大神的解说,让自己对数据结构有了进一步的认识,故在此记录,希望能够帮助更多人去理解数据结构. 数据结构一般包含如下三个方面: 1.数据的逻辑结构 ...

  3. 数据结构的简单理解(2)

    数据逻辑的结构: 在不产生混淆的前提下,我们常常将数据的逻辑结构称之为数据结构,这样的话数据结构可以分为两类:线性结构和非线性结构(不掺杂存储关系). 1.线性结构: 线性结构:若结构是非空集,则有且 ...

  4. linux文件系统只有几k,关于Linux文件系统的的简单理解和认识

    关于Linux文件系统的的简单理解和认识 关于文件系统的运作,这与操作系统带的档案数据有关.例如Linux操作系统的档案权限(rwx)与文件属性(拥有者,群组,时间参数等).文件系统通常会将这两部分的 ...

  5. Linux 文件区块连续吗,关于Linux文件系统的的简单理解和认识

    关于Linux文件系统的的简单理解和认识 关于文件系统的运作,这与操作系统带的档案数据有关.例如Linux操作系统的档案权限(rwx)与文件属性(拥有者,群组,时间参数等).文件系统通常会将这两部分的 ...

  6. 大话数据结构第一章理解

    一.概念          1.1 数据概念 数据:计算机能识别的能运算的符号,各种数据对象的集合--可以简单理解为各种类型的数组的集合. 数据对象:是性质相同的同一类型的数据元素的集合--可以简单理 ...

  7. 数据库|第一范式、第二范式、第三范式、BC范式、第四范式简单理解

    数据库|第一范式.第二范式.第三范式.BC范式.第四范式简单理解 在设计数据库的时候,虽说将我们要的数据正确完整导入数据库是很关键的,但是对于数据库的设计者来说,如何将大量数据合理有效正确地导入数据库 ...

  8. 简单理解selcet模型

    前期知识: 在开始接触select之前,你需要先对IO的同步,异步,阻塞,非阻塞有个基本的了解,知道什么是IO多路复用.下面这篇文章可以帮助你快速区分这几种模型:IO - 同步,异步,阻塞,非阻塞 ( ...

  9. CPU核心数线程数、程序进程线程、并发并行的简单理解

    CPU核心数线程数.程序进程线程.并发并行.简单理解和区分 这篇文章是对上述感念的简单理解,想深入研究可以看看<计算机组成原理> CPU的核心数 线程数 当我们买电脑的时候,会看到CPU的 ...

最新文章

  1. 一文揭秘定时任务调度框架quartz
  2. 中国男人何时回归家庭?(转)
  3. Python【01】【基础部分】- A
  4. js 控制页面跳转的5种方法
  5. linux编程基础黑马要点总结,黑马《linux基础编程》学习笔记(从6到10)
  6. javaweb之mysql数据库
  7. Java调用存储过程返回数组
  8. win11更新特别慢怎么办 windows11更新缓慢的解决方法
  9. XHR 和 Fetch 的使用详解和区别总结
  10. 计算机程序可以通过删除卸载嘛,怎么彻底卸载电脑软件程序多种方法
  11. GO语言-第二节-顺序编程
  12. AS3.0实现扎气球游戏
  13. C51单片机实现呼吸灯
  14. 论文:并行化 Metropolis-Hastings 算法的一般结构
  15. notify()和notifyAll()有什么区别?
  16. SPN实现——限时1000ms的代换-置换网络加解密的时间优化思路
  17. Python爬取百度图片搜索结果
  18. [笔记]unity渲染类零碎代码记录(100多条)
  19. 淘宝商品详情api接口代码对接分享
  20. Ubuntu18.04双显卡笔记本+ROS 安装nvidia显卡驱动、CUDA10.2、CUDNN8.3.0、Eigen3.3.7

热门文章

  1. 计算机文档vmware安装虚拟机,教你如何用VMware虚拟机安装系统.docx
  2. MySQL 高级 - 存储过程 - 概述
  3. 索引使用原则-列的离散(sàn)度
  4. 文件操作-小文件复制
  5. 多值参数-定义及作用
  6. 内存溢出与内存泄漏区别
  7. 设计模式之_Iterator_04
  8. 设置元素的宽和高 元素的left和top 元素卷曲出去的值 为元素绑定事件
  9. ConditionObject源码
  10. python 多条件判断 生成新列_pandas DataFrame 根据多列的值做判断,生成新的列值