数据结构chapter5数组和广义表

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

… … ………
a n1 a n2 a n3 … a nn
LOC(i,j)=LOC(1,1) + 前i-1行非零元素个数+第i行中aij前非零元素的个数
=LOC(1,1) + i(i-1)/2+j-1
可编辑ppt
12
第 5 章 数组和广义表
5.3 特殊矩阵的压缩存储
特殊矩阵:①三角矩阵
上三角矩阵

a 11 a 12 a 13 ... a 1n
第 5 章 数组和广义表
5.1 数组的定义和运算

5.2 数组的顺序存储和实现


5.3 特殊矩阵的压缩存储

5.4 广义表
可编辑ppt
1
第 5 章 数组和广义表
5.1 数组的定义和运算 定义 数组是一组有固定个数的元素的集合。


a11 a12 .... a1n

据 结 构
Am×n =
a21 a22 .... a2n .... .... .... ....

0 a 22 a 23 ... a 2n
结 构
c c a 33 ... a 3n
... ... ... ... ...
c c c ... ann
LOC(i,j)=LOC(1,1) + 前i-1行非零元素个数+第i行中aij前非零元素的个数
=LOC(1,1) + (i-1)(2n-i+2)/2+j-i
10
第 5 章 数组和广义表 5.3 特殊矩阵的压缩存储
①三角矩阵
特殊矩阵

②带状矩阵

结 构
①三元组顺序表 稀疏矩阵
②十字链表
可编辑ppt
11
第 5 章 数组和广义表
5.3 特殊矩阵的压缩存储
特殊矩阵:①三角矩阵
下三角矩阵

a 11 c
c cc
据 结
a 21 a 22 c c c

a 31 a 32 a 33 c c
可编辑ppt
13
第 5 章 数组和广义表
5.3 特殊矩阵的压缩存储 特殊矩阵:②带状矩阵
a11 a12

a 21 a 22 a 23
据 结
a 32 a 33 a 34

a 43 a 44 a 45
... .wk.baidu.com. ...
... ... ... n×n
数 据
主要操作是数据元素的定位,即给定元素

的下标,得到该元素在计算机中的存放位置。

其本质是地址计算问题。
有两种顺序映象的方式:
以行序为主序;
以列序为主序。
可编辑ppt
5
第 5 章 数组和广义表
5.2 数组的顺序存储和实现
以行序为主序
例如:
数 据
a1,1 a1,2 a1,3
结 构
a2,1 a2,2 a2,3
三维数组A r × m×n中任一元素ai,j,k 的存储位置
数 LOC(i,j,k)=LOC(1,1,1) + ((i-1)×m×n +(j-1)×n+(k-1))×L

结 构
j1,j2,j3代替数组下标i,j,k,并且j1,j2,j3的下限分别为c1,c2,c3,上
限为d1,d2,d3,每个元素占size个存储单元。则a j1,j2,j3的存储位置

a2,1 a2,2 a2,3

a1,1 a2,1 a1,2 a2,2 a1,3 a2,3
L
二维数组Amxn中任一元素ai,j 的存储位置
LOC(i,j)=LOC(1,1) + (m×(j-1)+(i-1))× L
称为基地址或基址。
可编辑ppt
7
第 5 章 数组和广义表 5.2 数组的顺序存储和实现
看 成 是 n

am1 am2 .... amn
m×n
列 向

也可以看成是m个行向量
可看成是一种特殊的线性表,其特殊在
于表中的数据元素可本编辑身ppt也是一个线性表。
2
第 5 章 数组和广义表
5.1 数组的定义和运算
抽象数据类型定义
ADT Array{
数 据
数据对象:D={aj1j2…jn|n>0,称为数组的维数,ji是数组的 第i维下标,1≤ji≤bi,bi为数组第i维的长度,
}ADT Array
2.Destroy(A)
3
第 5 章 数组和广义表 5.2 数组的顺序存储和实现
类型特点:
数 据
1)不考虑插入和删除操作;


2)数组是多维的结构,而存
储空间是一个一维的结构。
可编辑ppt
4
第 5 章 数组和广义表
5.1 数组的定义和运算
运算 获得特定位置的元素值;
修改特定位置的元素值。
LOC(j1,j2,j3)=LOC(c1,c2,c3) + ((j1-c1)×(d2-c2+1)× (d3-c3+1) +(j2-c2)× (d3-c3+1) +(j3-c3))×size
可编辑ppt
8
第 5 章 数组和广义表 5.2 数组的顺序存储和实现
推广到一般情况,可得到 n 维数 组数据元素存储位置的映象关系:
个字节,第一个元素A1,1的存储地址为100,
数 据
则按行优先顺序存储时元素A6,6的存储地址为? 若按列优先顺序存储时元素A6,6的存储地址为?

按行优先

A 6,6=100+[(6-1)*20+(6-1)]*2=310
按列优先
A 6,6=100+[((6-1)*10+(6-1)]*2=210
可编辑ppt

n
∑ 据 Loc(A[j1][j2]…[jn]=Loc(A[c1][c2]…[cn])+ αi×(ji-ci), 1≤i≤n

i=1

n
其中: αi=size×k∏=i+1(dk-ck+1),1≤i≤n)
可编辑ppt
9
第 5 章 数组和广义表
5.2 数组的顺序存储和实现
例如:设有二维数组A[10][20],其每个元素占2
a1,1 a1,2 a1,3 a2,1 a2,2 a2,3
L
二维数组Amxn中任一元素ai,j 的存储位置
LOC(i,j)=LOC(1,1) + (n×(i-1)+(j-1))× L
称为基地址或基址。
可编辑ppt
6
第 5 章 数组和广义表
5.2 数组的顺序存储和实现
以列序为主序 例如:
数 据
a1,1 a1,2 a1,3

aj1j2…jn∈ElementSet}

数据关系:R={R1,R2,…,Rn}
Ri={<aj1…ji…jn, aj1…ji+1…jn >| 1≤jk≤bk, 1≤k≤n,
且k≠i, 1≤ji≤bi-1, aj1…ji…jn, aj1…ji+1…jn ∈D,
基本操作: i=1,…,n }
1.InitArray(A,n,bond1,…,bondn) 3.GetValue(A,e,index1,…,indexn) 4.SetValue(A,e,可in编d辑epxp1t ,…,indexn)
相关文档
最新文档