数据结构 || 二维数组按行存储和按列存储[通俗易懂]

数据结构 || 二维数组按行存储和按列存储[通俗易懂]问题描述:设有数组A[n,m],数组的每个元素长度为3字节,n的值为1~8,m的值为1~10,数组从内存收地址BA开始顺序存放,请分别用列存储方式和行存储方式求A[5,8]的存储首地址为多少。解题说明:(1)为什么要引入以列序为主序和以行序为主序的存储方式?因为一般情况下存储单元是单一的存储结构,而数组可能是多维的结构,则用一维数组存储数组的数据元素就存…

大家好,又见面了,我是你们的朋友全栈君。

问题描述

    设有数组A[n,m],数组的每个元素长度为3字节,n的值为1~8,m的值为1~10,数组从内存收地址BA开始顺序存放,请分别用列存储方式和行存储方式求A[5,8]的存储首地址为多少。

解题说明

    (1)为什么要引入以列序为主序和以行序为主序的存储方式?

      因为一般情况下存储单元是单一的存储结构,而数组可能是多维的结构,则用一维数组存储数组的数据元素就存在着次序约定的问题,所以就有了以列序为主序和以行序为主序的存储方式。

    (2)以列序为主序的存储方式的存储地址计算公式:

       LOC(i,j) = LOC(0,0) + (m*(j-1)+(i-1))*L

       LOC(i,j)是a(i,j)的存储位置; LOC(0,0)是a(0,0)的存储位置(即二维数组的起始存储位置,为称为基地址或基址);m是数组的总行数,L是单个数据元素占据的存储单元。

    (2)以行序为主序的存储方式的存储地址计算公式:

       LOC(i,j) = LOC(0,0) + (n*(i-1)+(j-1))*L

       LOC(i,j)是a(i,j)的存储位置; LOC(0,0)是a(0,0)的存储位置(即二维数组的起始存储位置,为称为基地址或基址);n是数组的总列数,L是单个数据元素占据的存储单元。

解题过程

       行n=8,列m=10

     (1)行优先

       A[5,8] = A(0,0) + (m*(i-1)+(j-1))*L = BA + (10 * ( 5-1) + ( 8-1 )) * 3 = BA + 141

    (2)列优先

       A[5,8] = A(0,0) + (n*(j-1)+(i-1))*L = BA + (8 * ( 8-1) + ( 5-1 )) * 3 = BA + 180

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160386.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm如何使用mysql_pycharm中的MySQL驱动

    pycharm如何使用mysql_pycharm中的MySQL驱动一般的开发过程中,我们需要使用pycharm来连接数据库,从而来进行对数据库的操作,这里主要连接的是mysql数据库,另外加了使用pandas模块读取数据库的操作,基本的操作如下所示:直接连接数据库importpymysqlconn=pymysql.connect(host=’localhost’,port=3306,db=’joker’,user=’root’,password=’root…

    2022年8月28日
    3
  • 图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID10

    图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID10    RAID技术相信大家都有接触过,尤其是服务器运维人员,RAID概念很多,有时候会概念混淆。这篇文章为网络转载,写得相当不错,它对RAID技术的概念特征、基本原理、关键技术、各种等级和发展现状进行了全面的阐述,并为用户如何进行应用选择提供了基本原则,对于初学者应该有很大的帮助。一、RAID概述  1988年美国加州大学伯克利分校的D.A.Patterson教授等首次…

    2022年7月15日
    26
  • 用MATLAB实现对运动物体识别与跟踪

    用MATLAB实现对运动物体识别与跟踪

    2022年2月23日
    48
  • mysql数据库入门

    在很多地方都有人提到MySQL这个数据,之前没有接触过的mysql数据库的童鞋们可以跟我一起走进mysql的世界。http://hovertree.com/menu/mysql/安装我就不多说了,

    2021年12月23日
    47
  • Python实现五子棋人机对战 | CSDN博文精选「建议收藏」

    Python实现五子棋人机对战 | CSDN博文精选「建议收藏」作者|吴小鹏来源|数据札记倌(ID:Data_Groom)五子棋是常见的一款小游戏,五子棋问题是人工智能中的一个经典问题。这篇文章主要介绍了Python版本五子棋的实现代码,大家可以做个参考,与我的傻儿子对弈一下。简述虽然计算机已经几乎激活成功教程了五子棋的取胜秘籍,甚至给出了取胜的具体方案,然而,对人来说,五子棋还是非常有玩头的。我们往往有五子棋的技巧性和全局观远远比不上象棋,围棋之类的感…

    2022年6月21日
    29
  • webstorm2022.01激活码_最新在线免费激活[通俗易懂]

    (webstorm2022.01激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月31日
    1.1K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号