- 1
- 0
- 约6.83千字
- 约 38页
- 2019-02-22 发布于湖北
- 举报
第二章 常用数据结构及其运算----数组 主要介绍多维数组的概念及在计算机中的存放,特殊矩阵的压缩存储及相应运算,广义表的概念和存储结构及其相关运算的实现。通过学习,要求掌握如下内容: 1.多维数组的定义及在计算机中的存储表示; 2.对称矩阵、三角矩阵、对角矩阵等特殊矩阵在计算机中的压缩存储表示及地址计算公式; 3.稀疏矩阵的三元组表示及转置算法实现; 4.稀疏矩阵的十字链表表示及相加算法实现; 多维数组 多维数组的概念 数组是大家都已经很熟悉的一种数据类型,几乎所有高级语言程序设计中都设定了数组类型。在此,我们仅简单地讨论数组的逻辑结构及在计算机内的存储方式。 1.一维数组 一维数组可以看成是一个线性表或一个向量,它在计算机内是存放在一块连续的存储单元中,适合于随机查找。这在线性表的顺序存储结构中已经介绍。 2.二维数组 二维数组可以看成是向量的推广。例如,设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。由此可知二维数组中的每一个元素最多可有两个直接前驱和两个直接后继(边界除外),故是一种典型的非线性结构。 3.多维数组 同理,三维数组最多可有三个直接前驱和三个直接后继,三维以上数组可以作类似分析。因此,可以把三维以上的数组称为多维数组,多维数组可有多个直接前驱和多个直接后继,故多维数组是一种非线性结构。 多维数组在计算机内的存放 怎样将多维数组中元素存入到计算机内存中呢?由于计算机内存结构是一维的(线性的),因此,用一维内存存放多维数组就必须按某种次序将数组元素排成一个线性序列,然后将这个线性序列顺序存放在存储器中,具体实现方法在下一节介绍。 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。即二维数组按行优先存放到内存后,变成了一个线性序列(线性表)。 因此,可以得出多维数组按行优先存放到内存的规律:最左边下标变化最慢,最右边下标变化最快,右边下标变化一遍,与之相邻的左边下标才变化一次。因此,在算法中,最左边下标可以看成是外循环,最右边下标可以看成是最内循环。 2.地址计算 由于多维数组在内存中排列成一个线性序列,因此,若知道第一个元素的内存地址,如何求得其他元素的内存地址?我们可以将它们的地址排列看成是一个等差数列,假设每个元素占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。 同理,三维数组Am×n×p按行优先存放的地址计算公式为:LOC(aijk)=LOC(a000)+(i×n×p+j×p+k)×l。 列优先顺序 1.存放规则 列优先顺序也称为高下标优先或右边下标优先于左边下标。具体实现时,按列号从小到大的顺序,先将第一列中元素全部存放好,再存放第二列元素,第三列元素,依次类推…… 在FORTRAN语言程序设计中,数组是按列优先顺序存放的。例如,对前面提到的Am×n二维数组,可以按如下的形式存放到内存:a00, a10…, am-10, a01,a11, …, am-1 1,…, a0 m-1,a1m-1,..., am-1 n-1。 即二维数组按列优先存放到内存后,也变成了一个线性序列(线性表)。 因此,可以得出多维数组按列优先存放到内存的规律:最右边下标变化最慢,最左边下标变化最快,左边下标变化一遍,与之相邻的右边下标才变化一次。因此,在算法中,最右边下标可以看成是外循环,最左边下标可以看成是最内循环。 2.地址计算 同样与行优先存放类似,若知道第一个元素的内存地址,则同样可以求得按列优存放的某一元素aij
您可能关注的文档
- 自尊是人人都需要人教版七年级下册第一单元第 一课第一框.doc
- 局域模,简正模李代数表示.pdf
- 关于开展创建四个一流职工队伍实施意见.pdf
- 英特尔大学进修课程 如何做一个杰出经理人 Role of a Manager as Coach.pdf
- 论马克思哲学日常生活维度及其当代价值王福民.pdf
- 汽车与汽车零部件行业研究报告看好汽车行业长期发展.pdf
- 19531955年苏联部长会议主席马林科夫改革探析.pdf
- 学校寄来红单谈成就归因.pdf
- 水泥密封固化剂有多种产品规格,适合不同地面不同要求.docx
- 日本留学综合指南日本生活必需物品一览.pdf
- 平行线的概念(课件)2025-2026学年人教版七年级数学下册.pptx
- 向量的减法(第一课时)课件2025-2026学年高一下学期数学人教A版必修第二册.pptx
- 不等式及其解集(课件)2025-2026学年人教版七年级数学下册.pptx
- 条件概率课件2025-2026学年高二下学期数学人教A版选择性必修第三册.pptx
- 用函数解析式表示函数关系课件2025-2026学年人教版数学八年级下册.pptx
- 正比例函数的图象和性质课件2025-2026学年人教版数学八年级下册.pptx
- 函数课件2025-2026学年人教版数学八年级下册.pptx
- 二次根式的乘法与除法课件2025-2026学年人教版数学八年级下册.pptx
- 分类加法计数原理与分步乘法计数原理课件-2025-2026学年高二下学期数学人教A版选择性必修第三册.pptx
- 宇宙航行课件2025-2026学年高一下学期物理人教版必修第二册.pptx
最近下载
- 《建筑工程资料管理》中职课件-01项目一 建筑工程资料管理.pptx VIP
- 2025年高职单独招生考试英语试卷(答案) .pdf VIP
- 办公空间设计 开敞式办公区设计 办公空间设计--开敞式办公区设计.ppt VIP
- 儿童行为观察课程教学大纲.docx VIP
- 2026年单位开展树立和践行正确政绩观学习教育工作实施方案附重点任务分解表.docx VIP
- 锻炼身体-强身健体主题班会.pptx VIP
- 三菱电梯LEHY-III凌云3图纸-三菱公司内部2016原版.pdf
- 高中英语2026届高考新课标新增词汇解析(词性+汉语解释+例句)(共191个).doc
- 丁玲文学中的医院叙事赏析.pptx VIP
- 管理会计教案.pdf VIP
原创力文档

文档评论(0)