数据逻辑结构在计算机存储器中的表示称为数据的存储结构(或存储表示),也称为物理结构。通常情况下,同一种逻辑结构可以设计多种存储结构,在不同的存储结构中,实现同一种运算的算法可能不同。
逻辑结构、存储结构和运算三者之间的关系如图1.5所示。
把数据对象存储到计算机中时,通常要求既要存储各数据元素,又要存储数据元素之间的逻辑关系。在实际应用中,数据的存储方法是灵活多样的,可根据问题规模(通常是指元素个数的多少)和运算种类等因素适当选择。下面简要介绍主要的几种存储结构。1.顺序存储结构
顺序存储结构是采用一组连续的存储单元存放所有的数据元素,而且逻辑上相邻的元素的存储单元也相邻。也就是说,元素之间的逻辑关系由存储单元地址间的关系隐含表示,即顺序存储结构将数据的逻辑结构直接映射到存储结构。顺序存储结构的主要优点是节省存储空间。因为分配给数据的存储单元全用于存放元素值,元素之间逻辑关系的表示没有占用额外的存储空间。用这种方法来存储线性结构的数据元素时,可实现对各数据元素的随机存取(所谓随机存取是指给定某元素的逻辑序号,能在常量时间内查找到对应的元素值)。
这是因为线性结构中每个数据元素对应一个序号(开始元素的序号为1,它的后继元素的序号为2……),序号为i的元素ai,其存储地址如下:
LOC(ai)=p+(i—1)×k
其中,k是每个元素所占的单元数,p是第一个元素所占单元的首地址。
顺序存储结构的主要缺点是不便于修改,在对元素进行插入、删除运算时,可能要移动一系列的元素。2.链式存储结构
顺序存储结构要求所有的元素在内存中相邻存放,因而需占用一片连续的存储空间;而链式存储结构不是这样,每个结点单独存储,无须占用一整块存储空间,但为了表示结点之间的关系,给每个结点附加指针字段,用于存放相邻结点的存储地址。
对于前面的逻辑结构Score,在设计其链式存储结构时,每个结点存放一个学生成绩记录,每个结点附加一个“下一个结点地址”即后继指针域,用于存放后继结点的首地址,则可得到如图1.7所示的Score的链式存储表示,head作为第一个结点的地址来标识整个链式存储结构。从图中可以看出,每个结点由两部分组成,一部分用于存放结点的数据,另一部分用于存放后继结点的首地址。为了更清楚地反映链式存储结构,可采用更直观的图示来表示,如Score的链式存储结构可用如图1.8所示的方式表示。如要查找某学号的结点,需从head所指结点开始比较,在没有找到时依次沿后继指针域继续找下去。
图1.8 Score链式存储结构示意图
链式存储结构的主要优点是便于修改,在进行插入、删除运算时,仅需修改结点的指针域,不必移动结点。
与顺序存储结构相比,链式存储结构的主要缺点是存储空间的利用率较低,因为分配给数据元素的存储单元中有一部分被用来存放结点之间的逻辑关系了。另外,由于逻辑上相邻的结点在存储器中不一定相邻,因此,在用这种方法存储的线性结构中不能对结点进行随机存取。

数据逻辑结构在计算机存储器中的表示称为数据的存储结构相关推荐

  1. 计算机存储单元ASCI,在计算机存储器中,存储英文字母\quot;A\quot;时,存储的是它的( ) A.输入码B.ASCII码C - 作业在线问答...

    相关题目与解析 在计算机存储器中,存储英文字母"A"时,存储的是它的().A.输入码B.ASCII码C. 在计算机系统中,存储英文字母"A"时,实际存储的是它的 ...

  2. 数组x中数据复制到数组y中,重复的数据只存储一次,最后输出y;计算x中数据的平均值ave及大于平均值的元素个数n。c++实现

    题目描述 编程序,实现如下功能: (1)定义两个一维数组x,y,不超过50个元素. (2)从键盘输入k个整数到数组x中. (3)计算x中数据的平均值ave及大于平均值的元素个数n并输出. (4)将数组 ...

  3. Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构

    Atitit.数据索引 的种类以及原理实现机制 索引常用的存储结构 1. 索引的分类1 1.1. 索引的类型  按查找方式分,两种,分块索引 vs编号索引1 1.2. 按索引与数据的查找顺序可分为 正 ...

  4. 关于存储器中的地址与数据的对应关系

    今晚在学习C语言的指针变量部分时,有这样一句话: "如果指针变量p已指向数组中的一个元素,那么p+1指向同一数组中的下一个元素,但值得注意的是,执行p+1并不是将p的值简单地加1,而是加上一 ...

  5. boot spring 接口接收数据_在 Spring Boot 中使用 Dataway 配置数据查询接口

    Dataway介绍 Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具.使得使用者无需开发任何代码就配置一个满足需求的接口. 整个接口配置.测试.冒烟.发布.一站式都通过 ...

  6. mysql十万条数据_2秒内向数据库中插入十万条数据?

    怎么向数据库中快速插入十万条数据呢,当然得需要对比才能看到效果,今天给大家亲身测了两种方法对比,差别25倍左右 1,数据库用sql server 2008 r2,表结构非常简单,四个字段,建数据表的s ...

  7. xlsx表格怎么筛选重复数据_怎样在excel2010中筛选出重复数据呢?

    数据是信息的表现形式和载体,可以是符号.文字.数字.语音.图像.视频等.数据和信息是不可分离的,数据是信息的表达,信息是数据的内涵.在这一篇教程里面,小编主要和大家简单的介绍一下:怎样在Excel20 ...

  8. Mysql查询表中每行数据大小_计算数据库中各个表的数据量和每行记录所占用空间的脚本-转载来自(博客园 桦仔)...

    本文出处: 感谢桦仔 的分享精神! 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tablespaceinfo ( nameinfo  ...

  9. python 获取金融数据_class类在python中如何获取金融数据

    class类在python中如何获取金融数据 发布时间:2020-12-11 11:12:06 来源:亿速云 阅读:101 作者:小新 这篇文章主要介绍了class类在python中如何获取金融数据, ...

最新文章

  1. 课程实验代码及动手动脑测试
  2. 在调研近百家企业需求后,我们推出了新产品线——神策客景
  3. ArrayBlockingQueue原理分析-remove方法
  4. sklearn自学指南(part28)--双向聚类
  5. 33--二维数组中的查找
  6. 最优布线问题(信息学奥赛一本通-T1349)
  7. oracle 查询判断语句
  8. Kubernetes 小白学习笔记(30)--kubernetes云原生应用开发-service mesh介绍
  9. Java技术体系概述
  10. 美的oracle财务系统,美的集团Oracle ERP 系统财务操作手册(pdf 73页)
  11. 常见视频输出接口类型
  12. 基于matlab的黑体辐射特性分析,MATLAB 黑体辐射规律的研究
  13. 推荐 :一小时建立数据分析平台
  14. 裁员潮下的打工人,怎么把手里的饭碗端稳?
  15. 可以DIY装修的商城系统,你也能拥有
  16. div显示在上层_html如何将一个div置于最上层
  17. 实时视频应用之QoS关键技术分析
  18. HBase的协处理器(Coprocessor)、HBase如何使用二级索引、observer协处理器、 endpoint协处理器、Hbase 协处理器加载方式
  19. 完美实现跨域Iframe高度自适应【Iframe跨域高度自适应解决方案】
  20. python 多mic录音WASAPI

热门文章

  1. CSS基础样式属性设置
  2. 收到一套传家宝...
  3. 爬虫实战(一)猫眼电影基础数据爬取
  4. android 工具栏沉浸 下拉,Android沉浸式状态栏总结
  5. hive:函数:条件函数:if函数
  6. LittleVgl 合入拼音输入法
  7. 使用illuminate/html
  8. 皮尔逊相关系数的理解
  9. 小兔子故事的另一个版本(那些你爱过的人,总会在平行时空,爱着你)
  10. ajax的post请求