数据的存储结构可用以下四种基本存储方法得到:

(1)顺序存储方法

该方法把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。

由此得到的存储表示称为顺序存储结构 (Sequential Storage Structure ),通常借助程序语言的数组描述。

该方法主要应用于线性的数据结构。非线性的数据结构也可通过某种线性化的方法实现顺序存储。

(2)链接存储方法

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

(3)索引存储方法

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

(关键字、地址)

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

(4)散列存储方法

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

四种基本存储方法,既可单独使用,也可组合起来对数据结构进行存储映像。

同一逻辑结构采用不同的存储方法,可以得到不同的存储结构。选择何种存储结构来表示相应的逻辑结构,视具体要求而定,主要考虑运算方便及算法的时空要求。

数据结构三方面的关系

数据的逻辑结构、数据的存储结构及数据的运算这三方面是一个整体。孤立地去理解一个方面,而不注意它们之间的联系是不可取的。 存储结构是数据结构不可缺少的一个方面:同一逻辑结构的不同存储结构可冠以不同的数据结构名称来标识。

【例】线性表是一种逻辑结构,若采用顺序方法的存储表示,可称其为顺序表;若采用链式存储方法,则可称其为链表;若采用散列存储方法,则可称为散列表。

数据的运算也是数据结构不可分割的一个方面。在给定了数据的逻辑结构和存储结构之后,按定义的运算集合及其运算的性质不同,也可能导致完全不同的数据结构。

【例】若对线性表上的插入、删除运算限制在表的一端进行,则该线性表称之为栈;若对插入限制在表的一端进行,而删除限制在表的另一端进行,则该线性表称之为队列。更进一步,若线性表采用顺序表或链表作为存储结构,则对插入和删除运算做了上述限制之后,可分别得到顺序栈或链栈,顺序队列或链队列。

转载至:http://www.chinadmd.com/theme/6IL8J5o595758154A75b7HJ3SY153F696JoE6/

数据的四种基本存储方法相关推荐

  1. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider...

    ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制.并且此种方式忽略了底层的数据存储实现,Cont ...

  2. Android数据的四种存储方式

    很清晰的思路,转自Android数据的四种存储方式 作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQL ...

  3. Python爬虫入门之爬虫解析提取数据的四种方法

    本文主要介绍了Python爬虫入门之爬虫解析提取数据的四种方法,通过具体的内容向大家展现,希望对大家Python爬虫的学习有所帮助. 基础爬虫的固定模式 笔者这里所谈的基础爬虫,指的是不需要处理像异步 ...

  4. (第5讲)同一用户的不同页面共享数据的四种方法

    同一用户的不同页面共享数据的四种方法 1.cookie 2.sendRedirect 3.session 4.隐藏表单提交 1.cookie 服务器在客户端保存的用户信息,比如登录名,密码等就是coo ...

  5. mysqli操作数据库,连接和四种取值方法

    <?php header("Content-Type:text/html;charset=utf-8");//使用mysqli对象操作数据库//方法一://$_mysqli ...

  6. 数据事务四种隔离机制和七种传播行为

    数据事务四种隔离机制和七种传播行为 一.隔离级别: 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted.Read committed.Repeatable read.Seria ...

  7. 大数据变现四种途径,如何把海量数据变成现金?

    大数据变现四种途径,如何把海量数据变成现金? 胡敏 • 2015-06-12 09:42 摘要: 西班牙电信.沃达丰电信.DHL等握有巨量数据的企业都在尝试不同的方式把数据变成现金. 大数据变现是大数 ...

  8. 四种连接数据库的方法(DriverManager、DataSource子类、DBCP、c3p0)

    四种连接数据库的方法(DriverManager.DataSource子类.DBCP.c3p0) 一.环境     1.数据库驱动jar文件 2.DBCP方法  Commons-dbcp.jar:连接 ...

  9. wordpress mysql 密码重置_WordPress忘记密码找回登录密码的四种行之有效的方法

    WordPress忘记密码找回登录密码的四种行之有效的方法 PS:20170214更新,感谢SuperDoge同学提供的方法,登入phpMyAdmin后,先从左边选自己的数据库,然后点上面的 SQL ...

最新文章

  1. HttpServletResponse,HttpServletRequest详解
  2. Windows Azure Mobile Services增加了对 Android的支持并扩展其适用范围至东亚地区
  3. Android中链接到百度进行搜索
  4. python和log有啥区别_细说 Python logging
  5. Log4J入门教程(三) web项目的log4j配置
  6. Pandas库学习笔记
  7. t30智能插座怎么设置_如何设置ConnectSense智能插座
  8. java javap_javap的用途不断发展:您的Java类文件中隐藏了什么?
  9. java request 处理过程_小猿圈Java开发之从代码看spring mvc请求处理过程
  10. Spring Boot实践
  11. java用对话框输出计算结果_Java怎么实现输入一个string表达式然后输出计算的结果...
  12. linux常用删除空文件夹,Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍...
  13. nodeJS---URL相关模块用法(url和querystring)
  14. android剪贴板数据来源,Android判断程序回到前台并获取剪贴板数据
  15. phpstorm如何找回删除的文件
  16. xbox360 FSD 安装游戏教程(Freestyle3)
  17. 最全的Gateway统一网关快速入门
  18. 播布客视频PIT专用播放器MBOO2015
  19. 转。WEB前端特效。统计图,3D切换图片,摇号,转盘抽奖
  20. C++ 操纵算子原理

热门文章

  1. matlab hist函数的用法
  2. 汇编之寄存器(内存访问)之字与字节的传送
  3. 【JavaScript】颗粒归仓
  4. Pandas知识点-算术运算函数
  5. 数据集及各个分类网络的结构:LeNet、AlexNet、VGG、ResNet(持续更新)
  6. centos7.5 定时任务不执行,定时任务日志报错信息为 MAIL (mailed 68 bytes of output but got status 0x004b#012)
  7. vuetify使用详细入门步骤和日历的教程,方便下次使用,记录下来。
  8. Integer 和int
  9. Blazor 和 TypeScript 互操作工具库
  10. file文件C语言,C语言 File文件处理 创建和写文件