数据的四种基本存储方法
数据的存储结构可用以下四种基本存储方法得到:
(1)顺序存储方法
该方法把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。
由此得到的存储表示称为顺序存储结构 (Sequential Storage Structure ),通常借助程序语言的数组描述。
该方法主要应用于线性的数据结构。非线性的数据结构也可通过某种线性化的方法实现顺序存储。
(2)链接存储方法
该方法不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系由附加的指针字段表示。由此得到的存储表示称为链式存储结构(Linked Storage Structure), 通常借助于程序语言的指针类型描述。
(3)索引存储方法
该方法通常在储存结点信息的同时,还建立附加的索引表。 索引表由若干索引项组成。若每个结点在索引表中都有一个索引项,则该索引表称之为稠密索引(Dense Index )。若一组结点在索引表中只对应一个索引项,则该索引表称为稀疏索引(Spare Index)。索引项的一般形式是:
(关键字、地址)
关键字是能唯一标识一个结点的那些数据项。稠密索引中索引项的地址指示结点所在的存储位置;稀疏索引中索引项的地址指示一组结点的起始存储位置。
(4)散列存储方法
该方法的基本思想是:根据结点的关键字直接计算出该结点的存储地址。
四种基本存储方法,既可单独使用,也可组合起来对数据结构进行存储映像。
同一逻辑结构采用不同的存储方法,可以得到不同的存储结构。选择何种存储结构来表示相应的逻辑结构,视具体要求而定,主要考虑运算方便及算法的时空要求。
数据结构三方面的关系
数据的逻辑结构、数据的存储结构及数据的运算这三方面是一个整体。孤立地去理解一个方面,而不注意它们之间的联系是不可取的。 存储结构是数据结构不可缺少的一个方面:同一逻辑结构的不同存储结构可冠以不同的数据结构名称来标识。
【例】线性表是一种逻辑结构,若采用顺序方法的存储表示,可称其为顺序表;若采用链式存储方法,则可称其为链表;若采用散列存储方法,则可称为散列表。
数据的运算也是数据结构不可分割的一个方面。在给定了数据的逻辑结构和存储结构之后,按定义的运算集合及其运算的性质不同,也可能导致完全不同的数据结构。
【例】若对线性表上的插入、删除运算限制在表的一端进行,则该线性表称之为栈;若对插入限制在表的一端进行,而删除限制在表的另一端进行,则该线性表称之为队列。更进一步,若线性表采用顺序表或链表作为存储结构,则对插入和删除运算做了上述限制之后,可分别得到顺序栈或链栈,顺序队列或链队列。
转载至:http://www.chinadmd.com/theme/6IL8J5o595758154A75b7HJ3SY153F696JoE6/
数据的四种基本存储方法相关推荐
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider...
ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制.并且此种方式忽略了底层的数据存储实现,Cont ...
- Android数据的四种存储方式
很清晰的思路,转自Android数据的四种存储方式 作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQL ...
- Python爬虫入门之爬虫解析提取数据的四种方法
本文主要介绍了Python爬虫入门之爬虫解析提取数据的四种方法,通过具体的内容向大家展现,希望对大家Python爬虫的学习有所帮助. 基础爬虫的固定模式 笔者这里所谈的基础爬虫,指的是不需要处理像异步 ...
- (第5讲)同一用户的不同页面共享数据的四种方法
同一用户的不同页面共享数据的四种方法 1.cookie 2.sendRedirect 3.session 4.隐藏表单提交 1.cookie 服务器在客户端保存的用户信息,比如登录名,密码等就是coo ...
- mysqli操作数据库,连接和四种取值方法
<?php header("Content-Type:text/html;charset=utf-8");//使用mysqli对象操作数据库//方法一://$_mysqli ...
- 数据事务四种隔离机制和七种传播行为
数据事务四种隔离机制和七种传播行为 一.隔离级别: 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted.Read committed.Repeatable read.Seria ...
- 大数据变现四种途径,如何把海量数据变成现金?
大数据变现四种途径,如何把海量数据变成现金? 胡敏 • 2015-06-12 09:42 摘要: 西班牙电信.沃达丰电信.DHL等握有巨量数据的企业都在尝试不同的方式把数据变成现金. 大数据变现是大数 ...
- 四种连接数据库的方法(DriverManager、DataSource子类、DBCP、c3p0)
四种连接数据库的方法(DriverManager.DataSource子类.DBCP.c3p0) 一.环境 1.数据库驱动jar文件 2.DBCP方法 Commons-dbcp.jar:连接 ...
- wordpress mysql 密码重置_WordPress忘记密码找回登录密码的四种行之有效的方法
WordPress忘记密码找回登录密码的四种行之有效的方法 PS:20170214更新,感谢SuperDoge同学提供的方法,登入phpMyAdmin后,先从左边选自己的数据库,然后点上面的 SQL ...
最新文章
- HttpServletResponse,HttpServletRequest详解
- Windows Azure Mobile Services增加了对 Android的支持并扩展其适用范围至东亚地区
- Android中链接到百度进行搜索
- python和log有啥区别_细说 Python logging
- Log4J入门教程(三) web项目的log4j配置
- Pandas库学习笔记
- t30智能插座怎么设置_如何设置ConnectSense智能插座
- java javap_javap的用途不断发展:您的Java类文件中隐藏了什么?
- java request 处理过程_小猿圈Java开发之从代码看spring mvc请求处理过程
- Spring Boot实践
- java用对话框输出计算结果_Java怎么实现输入一个string表达式然后输出计算的结果...
- linux常用删除空文件夹,Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍...
- nodeJS---URL相关模块用法(url和querystring)
- android剪贴板数据来源,Android判断程序回到前台并获取剪贴板数据
- phpstorm如何找回删除的文件
- xbox360 FSD 安装游戏教程(Freestyle3)
- 最全的Gateway统一网关快速入门
- 播布客视频PIT专用播放器MBOO2015
- 转。WEB前端特效。统计图,3D切换图片,摇号,转盘抽奖
- C++ 操纵算子原理
热门文章
- matlab hist函数的用法
- 汇编之寄存器(内存访问)之字与字节的传送
- 【JavaScript】颗粒归仓
- Pandas知识点-算术运算函数
- 数据集及各个分类网络的结构:LeNet、AlexNet、VGG、ResNet(持续更新)
- centos7.5 定时任务不执行,定时任务日志报错信息为 MAIL (mailed 68 bytes of output but got status 0x004b#012)
- vuetify使用详细入门步骤和日历的教程,方便下次使用,记录下来。
- Integer 和int
- Blazor 和 TypeScript 互操作工具库
- file文件C语言,C语言 File文件处理 创建和写文件