1 / 52
文档名称:

第5章 多维数组和广义表.ppt

格式:ppt   页数:52
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第5章 多维数组和广义表.ppt

上传人:中国课件站 2011/10/11 文件大小:0 KB

下载得到文件列表

第5章 多维数组和广义表.ppt

文档介绍

文档介绍:第5章多维数组和广义表
数据结构(C++描述)
广义表


特殊矩阵及其压缩存储
稀疏矩阵
退出
目录



一维数组可以看成是一个线性表或一个向量(第二章已经介绍),它在计算机内是存放在一块连续的存储单元中,适合于随机查找。这在第二章的线性表的顺序存储结构中已经介绍。

二维数组可以看成是向量的推广。
例如,设A是一个有m行n列的二维数组,则A可以表示为:
在此,可以将二维数组A看成是由m个行向量[X0,X1, …,Xm-1]T组成,其中,Xi=( ai0, ai1, ….,ain-1), 0≤i≤m-1;也可以将二维数组A看成是由n个列向量[y0, y1, ……,yn-1]组成,其中 yi=(a0i, a1i, …..,am-1i), 0≤i≤n-1。
由此可知二维数组中的每一个元素最多可有二个直接前驱和两个直接后继(边界除外),故是一种典型的非线性结构。

同理,三维数组最多可有三个直接前驱和三个直接后继,三维以上数组可以作类似分析。因此,可以把三维以上的数组称为多维数组,多维数组可有多个直接前驱和多个直接后继,故多维数组是一种非线性结构。
多维数组在计算机内的存放
怎样将多维数组中元素存入到计算机内存中呢?由于计算机内存结构是一维的(线性的),因此,用一维内存存放多维数组就必须按某种次序将数组元素排成一个线性序列,然后将这个线性序列顺序存放在存储器中

由于数组一般不作插入或删除操作,也就是说,一旦建立了数组,则结构中的数组元素个数和元素之间的关系就不再发生变动,即它们的逻辑结构就固定下来了,不再发生变化。因此,采用顺序存储结构表示数组是顺理成章的事了。本章中,仅重点讨论二维数组的存储,三维及三维以上的数组可以作类似分析。
多维数组的顺序存储有两种形式:
行优先顺序

行优先顺序也称为低下标优先或左边下标优先于右边下标。具体实现时,按行号从小到大的顺序,先将第一行中元素全部存放好,再存放第二行元素,第三行元素,依次类推……
在BASIC语言、 PASCAL语言、 C/C++语言等高级语言程序设计中,都是按行优先顺序存放的。例如,对刚才的Am×n二维数组,可用如下形式存放到内存:a00, a01, … a0n-1,a10,a11,..., a1 n-1,…,am-1 0 , am-1 1,…,am-1 n-1。即二维数组按行优先存放到内存后,变成了一个线性序列(线性表)。
因此,可以得出多维数组按行优先存放到内存的规律:最左边下标变化最慢,最右边下标变化最快,右边下标变化一遍,与之相邻的左边下标才变化一次。因此,在算法中,最左边下标可以看成是外循环,最右边下标可以看成是最内循环。

由于多维数组在内存中排列成一个线性序列,因此,若知道第一个元素的内存地址,如何求得其它元素的内存地址?我们可以将它们的地址排列看成是一个等差数列,假设每个元素占l个字节,元素aij 的存储地址应为第一个元素的地址加上排在aij 前面的元素所占用的单元数,而aij 的前面有i行(0~i-1)共i×n个元素,而本行前面又有j个元素,故aij的前面一共有i×n+j个元素,设a00的内存地址为LOC(a00),则aij的内存地址按等差数列计算为LOC(aij)=LOC(a00)+(i×n+j)×l。同理,三维数组Am×n×p按行优先存放的地址计算公式为:LOC(aijk)=LOC(a000)+(i×n×p+j×p+k)×l。
列优先顺序

列优先顺序也称为高下标优先或右边下标优先于左边下标。具体实现时,按列号从小到大的顺序,先将第一列中元素全部存放好,再存放第二列元素,第三列元素,依次类推……
在FORTRAN语言程序设计中,数组是按列优先顺序存放的。例如,对前面提到的Am×n二维数组,可以按如下的形式存放到内存:a00, a10…, am-10, a01,a11, …, am-1 1,…, a0 m-1,a1m-1,..., am-1 n-1。即二维数组按列优先存放到内存后,也变成了一个线性序列(线性表)。
因此,可以得出多维数组按列优先存放到内存的规律:最右边下标变化最慢,最左边下标变化最快,左边下标变化一遍,与之相邻的右边下标才变化一次。因此,在算法中,最右边下标可以看成是外循环,最左边下标可以看成是最内循环。

同样与行优先存放类似,若知道第一个元素的内存地址,则同样可以求得按列优存放的某一元素aij的地址。
对二维数组有:LOC(

最近更新

2025年湖南食品药品职业学院单招职业技能测试.. 40页

2025年满洲里俄语职业学院单招综合素质考试模.. 42页

2025年漳州城市职业学院单招职业技能测试模拟.. 41页

2025年潍坊工程职业学院单招职业倾向性测试题.. 40页

2026年安徽卫生健康职业学院单招职测考试题库.. 42页

2025年甘肃林业职业技术学院单招职业倾向性考.. 39页

2026年宝鸡三和职业学院单招职业适应性考试模.. 42页

2026年宿州职业技术学院单招职业适应性测试模.. 41页

2025年皖北卫生职业学院单招职业适应性测试题.. 40页

2026年山东单招基础试题及答案1套 43页

2025年石家庄城市经济职业学院单招职业适应性.. 40页

2025年石家庄科技职业学院单招职业倾向性测试.. 42页

2026年平顶山文化艺术职业学院单招职业倾向性.. 42页

2025年苏州工业职业技术学院单招职业倾向性测.. 37页

2026年广东省单招职业倾向性考试模拟测试卷及.. 41页

2026年广东食品药品职业学院单招综合素质考试.. 42页

2025年营口职业技术学院单招职业适应性测试模.. 40页

2026年广西工业职业技术学院单招职业技能测试.. 42页

2025年西双版纳职业技术学院单招职业适应性考.. 39页

2026年广西经贸职业技术学院单招职业技能测试.. 41页

2026年廊坊燕京职业技术学院单招职业技能测试.. 43页

2026年忻州职业技术学院单招职测备考题库附答.. 41页

2025年广州卫生职业技术学院单招职业技能测试.. 64页

美团代运营业务委托合同 6页

新概念青少版2A各单元重点归纳 15页

九年级家长会课件PPT下载(初三2班) 25页

年产3000万片硝苯地平缓释片车间设计 40页

DB61∕T 926-2014 火灾高危单位消防安全管理与.. 45页

AQ 7011-2018《高温熔融金属吊运安全规程》 11页

保洁外包单位月度考评表 3页