河池学院:《数据结构》课程电子教案(PPT教学课件)第6章 数组和稀疏矩阵

第6章数组和稀疏矩阵 6.1数组 6.2特殊矩阵的压缩存储 提纲 CONTENTS 6.3稀疏矩阵 作业 上机实验题 1/57
CONTENTS 提纲 1/57

数组是一个二元组(idx,value)的集合,对每个idx,都有一个value值 与之对应。idx称为下标,可以由一个整数、两个整数或多个整数构成,下 标含有d(d≥1)个整数称为维数是d。 数组按维数分为一维、二维和多维数组。 一维数组A是n(n>1)个相同类型元素a0,a1,.,an-1构成的有限序列,其 逻辑表示为A=(a0,a1,.,an-1),其中,A是数组名,ai(0≤i≤n-1) 是数组A中序号为i的元素。 一个二维数组可以看作是每个数据元素都是相同类型的一维数组的一维数组。 以此类推。 2/57

二维数组的逻辑关系用二元组表示 9 10 11 12 5 6 7 8 1 2 3 4 B=(D,R) R={r1,r2} r1={,,,,,,, ,} //同行关系 r2={,,,,,,, } //同列关系 3/57

数组具有以下特点 (1)数组中各元素都具有统一的数据类型。 (2)d(d≥1)维数组中的非边界元素具有d个前驱元素和d个后 继元素。 (3)数组维数确定后,数据元素个数和元素之间的关系不再发 生改变,特别适合于顺序存储。 (4)每个有意义的下标都存在一个与其相对应的数组元素值。 4/57

d维数组抽象数据类型 ADT Array { 数据对象: D={ 数组中所有元素 } 数据关系: R={r1,r2,.,rd} ri={ 元素之间第i维的线性关系 | i=1,.,d} 基本运算: Value(A,i1,i2,.,id):A是已存在的d维数组,其运算结果是返回 A[i1,i2,.,id]值。 Assign(A,e,i1,i2,.,id):A是已存在的d维数组,其运算结果是 置A[i1,i2,.,id]=e。 . } 5/57

1. 一维数组 一维数组的所有元素依逻辑次序存放在一片连续的内存存储单元中。 其起始地址为第一个元素a0的地址即LOC(a0)。 假设每个数据元素占用k个存储单元。 则任一数据元素ai的存储地址LOC(ai)就可由以下公式求出 LOC(ai)=LOC(a0)+i×k (1≤i<n) 一维数组具有随机存储特性 6/57

2. d维数组 以m行n列的二维数组Am×n=(ai,j)为例讨论(二维数组也称为矩阵)。 7/57

按行优先存储 ai,j前面有0~i-1共i行,每行n个元素,共有i×n个元素。 在第i行中前面有a[i,0.j-1],共j个元素。 合起来,ai,j前面有i×n+j个元素。 LOC(ai,j)=LOC(a0,0) + (i×n + j)×k 假设每个元素占k个存储单元,LOC(a0,0)表示a0,0元素的存储地址。 对于元素ai,j: 8/57

按列优先存储 ai,j前面有0~j-1共j列,每列m个元素,共有j×m个元素。 在第j列中前面有a[0.i-1,j],共i个元素。 合起来,ai,j前面有j×m+i个元素。则: LOC(ai,j)=LOC(a0,0) + (j×m + i)×k 假设每个元素占k个存储单元,LOC(a0,0)表示a0,0元素的存储 地址。对于元素ai,j: 二维数组也具有随机存储特性,以此类推。 9/57

更一般地,数组A[c1.d1,c2.d2],则该数组按行优先存储时有: LOC(ai,j)=LOC(ac1,c2)+[(i-c1)×(d2-c2+1)+(j-c2)]×k 按按行优先存储时有: LOC(ai,j)=LOC(ac1,c2)+[(j-c2)×(d1-c1+1)+(i-c1)]×k 10/57
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第5章 递归.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第4章 串.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第3章 栈和队列 3.2 队列.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第3章 栈和队列 3.1 栈.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第2章 线性表 2.5 线性表的应用.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第2章 线性表 2.3 线性表的链式存储结构 2.4 顺序表和链表的比较.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第2章 线性表 2.1 线性表的定义 2.2 线性表的顺序存储结构.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第1章 绪论 1.3 算法分析 1.4 数据结构的目标.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第1章 绪论 1.1 什么是数据结构 1.2算法及其描述.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第13章 网络编程.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第12章 多线程.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第11章 JDBC.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第10章 IO.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第9章 反射机制.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第8章 泛型.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第7章 集合.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第6章 Java API.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第5章 异常.pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第4章 面向对象(下).pptx
- 《Java基础入门》课程电子教案(PPT教学课件)第3章 面向对象(上).pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.1 树.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.2 二叉树.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.3 二叉树先序、中序和后序遍历.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.4 二叉树的层次遍历 7.5 二叉树的构造.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.6 线索二叉树 7.7 哈夫曼树 7.8 二叉树与树、森林之间的转换.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第7章 树和二叉树 7.9 树算法设计和并查集.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.1 图的基本概念 8.2 图的存储结构.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.3 图的遍历.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.4 生成树和最小生成树.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.5 最短路径.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第8章 图 8.6 拓扑排序 8.7 AOE网与关键路径.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第9章 查找 9.1 查找的基本概念 9.2 线性表的查找.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第9章 查找 9.3 树表的查找(1/2).pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第9章 查找 9.3 树表的查找(2/2).pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第9章 查找 9.4 哈希表查找.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第10章 排序 10.1 排序的基本概念 10.2 插入排序 10.3 交换排序.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第10章 排序 10.4 选择排序.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第10章 排序 10.5 归并排序 10.6 基数排序 10.7 各种内排序方法的比较和选择.pptx
- 河池学院:《数据结构》课程电子教案(PPT教学课件)第10章 排序 10.8 外排序.pptx
- 《Python数据分析》课程电子教案(PPT课件)第1章 数据分析与可视化概述新.pptx
