第5章 数组与广义表
第五章 数组和广义表

矩阵Am×n看成n个列向量的线性表,即j=(a1j,a2j, …,amj)
还可以将数组Am×n看成另外一个线性表:
B=(1,,2,,… i ,…,m),其中i(1≤i≤m) 本身也是一个线性表,称为行向量,即: i= (ai1,ai2, …,aij ,…,ain)。 B ‖ 1 … i … m
5.3.1 特殊矩阵
• 三类特殊矩阵: 1. 对称矩阵:若 n 阶方阵A中的元满足特性 aij =aji 1≤i,j≤n 则称为 n 阶对称矩阵; 2. 2. 三角矩阵:若 n 阶方阵中下(上)三角(不包括对 角线)中的元均为常量 c 或 0,则称为上(下)三角矩 阵; 3. 3. 对角矩阵:若n阶方阵中的非零值元都集中在以主 对角线为中心的(由k条对角线组成的)带状区域中, 则称为k对角矩阵。
三维数组A中任一元素ai,j,k 的存储位置
a0,0,0 a0,0,1 a0,0,2 a0,1,0 a0,1,1 a0,1,2 a1,0,0 a1,0,1 a1,0,2 a1,1,0 a1,1,1 a1,1,2
Loc(ai,j,k)=Loc(a0,0,0)+(b2*b3* i+b3* j+k)* L
a11 a12 … a1,n a21 a22 … a2,n … an,1 an,2 … ann
k=0 1 …………………………… n(n-1)/2 n(n+1)/2-1
a11 a12 … a1,j … a1,n
An*n=
a21 a22 … a2,j … a2,n
ai-1,1 ai-2,2…ai-1,j …ai-1,n ai,1 ai,2 … ai,j … ai,n
5.3 矩阵的压缩存储
• 压缩存储:为多个值相同的元素只分配一个存 储空间,对零元素不分配空间。 • 目的:节省存储空间 • 任务:压缩存储矩阵并使矩阵的运算有效进行。 • 矩阵的存储:二维数组 • 可压缩存储的矩阵有两类: – 特殊矩阵:值相同的元素或零元素在矩阵中 分布有一定规律。如三角矩阵、对角矩阵。 – 随机稀疏矩阵:值相同的元素或零元素在矩 阵中分布没有一定规律。
第5章数组与广义表

5.2 数组的顺序表示和实现
特点:用一组地址连续的存储单元按照某种规则存放数组 中的数据元素。 两种规则(顺序存储方式):
以行序为主(低下标优先)—将数组元素按行排列,第 i+1个行向量紧接在第i个行向量后。如:PASCAL、C。 以列序为主(高下标优先)—将数组元素按列排列,第 j+1个列向量紧接在第j个列向量后。如:FORTRAN。
am-1,0 a01 a11 …… am-1,1
……
按 列 序 为 主 序
a0,n-1 a1,n-1
……
am-1,n-1 am-1,n-1 ?A[2][3][2]以行序为主存储,写出其元素存放的先后顺序
5.2 数组的顺序表示和实现
计算数组任一元素(a j1 j2 ... jn )的地址需要的三要素: ①数组的起始地址(即基地址) ②数组维数和各维的长度; ③数组中每个元素所占的存储单元 已知二维数组Ab1*b2,每个元素占L个存储单元, LOC(0,0)是 数组第一个元素的起始地址,以行序为主存储,求LOC(i,j)。
N维数组数据元素存储地址计算
1、数组M[1..10][-1..6][[0..3],起始地址是1000,每个元素占3个 存储单元,数组元素个数是 ,M[2][4][2]的地址是 。 2、数组A[0 .. 8][1 .. 10]的成员由6个字节组成,存放a要 个字 节,a的第8行第5列占 个字节。按行序a[8][5]与按列序 起始地址相同。 (10-1+1)*(6-(-1)+1)*(3-0+1)=320 LOC(M[2][4][2])=1000+[(i-1)*b2*b3+(j-(-1))*b3+k]*l =1000+[32*(2-1)+4*(4+1)+2]*3=1162 LOC(a[8][5])=a(起始地址)+(i*n+(j-1))*l =a+(8*10+4)*6=a+504, LOC(a[3][10])=a(起始地址)+((j-1)*m+i)*l =a+(9*9+3)*6=a+504。
《数据结构——用C语言描述(第二版)》第5章 数组和广义表

第五章 数组和广义表
在压缩存储时,矩阵中值相同的元素C可共享一个存储空间,元素 为零则可不必分配空间,而其余的元素有 n(n+1)/2个,因此三角矩阵 可用一维数组M[n×(n+1)/2+1]来存储,其中常数C放在数组的最后一 个下标变量中。
假设A和B矩阵分别用matrix型指针变量a和b表示,矩阵的转置可以 按以下进行:由于B的行是A的列,所以可按照b->data三元组表的次序在 a->data中找到相应的三元组进行转置,即可按a->data的列序转置,所得 到的转置矩阵B的三元组表b->data必定是按行优先存放的。因此,可以对 三元组表a->data从第一行起扫描,找到A的每一列中所有的非零元素,就 可以实现转置。
LOC ( aij ) =LOC ( a00) +(i×n+j) × c 同理可推导出以列为主序优先存储时数据元素a i j 的存储地址,其计算公式 为:
LOC( a i j ) =LOC( a00 ) +( j × n +i ) × c 对于三维数组Am×n×p而言,若以行为主序优先存储时,则其数据元 素aijk的存储地址可为: LOC ( a i j k) =LOC ( a000) +[ i × m×p +j ×p +k] × c 对于一般的二维数组A[c1…d1,c2…d2]而言,此处c1,c2的值不一定是 0,a i j 的地址为: LOC ( a i j ) =LOC ( a c 1 c 2 ) +[ ( i – c 1 )* ( d 2 – c 2 +1) +j – c 2 ] * c
第五章 数组与广义表

第五章数组、特殊矩阵和广义表本章介绍的数组与广义表可视为线性表的推广,其特点是数据元素仍然是一个表。
本章讨论多维数组的逻辑结构和存储结构、特殊矩阵、矩阵的压缩存储、广义表的逻辑结构和存储结构等。
5.1 多维数组5.1.1 数组的逻辑结构数组是我们很熟悉的一种数据结构,它可以看作线性表的推广。
数组作为一种数据结构其特点是结构中的元素本身可以是具有某种结构的数据,但属于同一数据类型,比如:一维数组可以看作一个线性表,二维数组可以看作“数据元素是一维数组”的一维数组,三维数组可以看作“数据元素是二维数组”的一维数组,依此类推。
图5.1是一个m行n 列的二维数组。
标识,因此,在数组上不能做插入、删除数据元素的操作。
通常在各种高级语言中数组一旦被定义,每一维的大小及上下界都不能改变。
在数组中通常做下面两种操作:(1)取值操作:给定一组下标,读其对应的数据元素。
(2)赋值操作:给定一组下标,存储或修改与其相对应的数据元素。
我们着重研究二维和三维数组,因为它们的应用是广泛的,尤其是二维数组。
5.1.2 数组的内存映象现在来讨论数组在计算机中的存储表示。
通常,数组在内存被映象为向量,即用向量作为数组的一种存储结构,这是因为内存的地址空间是一维的,数组的行列固定后,通过一个映象函数,则可根据数组元素的下标得到它的存储地址。
对于一维数组按下标顺序分配即可。
对多维数组分配时,要把它的元素映象存储在一维存储器中,一般有两种存储方式:一是以行为主序(或先行后列)的顺序存放,如BASIC、PASCAL、COBOL、C等程序设计语言中用的是以行为主的顺序分配,即一行分配完了接着分配下一行。
另一种是以列为主序(先列后行)的顺序存放,如FORTRAN语言中,用的是以列为主序的分配顺序,即一列一列地分配。
以行为主序的分配规律是:最右边的下标先变化,即最右下标从小到大,循环一遍后,右边第二个下标再变,…,从右向左,最后是左下标。
以列为主序分配的规律恰好相反:最左边的下标先变化,即最左下标从小到大,循环一遍后,左边第二个下标再变,…,从左向右,最后是右下标。
数据结构第5章

第5章:数组和广义表 1. 了解数组的定义;填空题:1、假设有二维数组A 6×8,每个元素用相邻的6个字节存储,存储器按字节编址。
已知A 的起始存储位置(基地址)为1000,则数组A 的体积(存储量)为 288 B ;末尾元素A 57的第一个字节地址为 1282 。
2、三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的 行下标 、 列下标 和 元素值 。
2. 理解数组的顺序表示方法会计算数组元素顺序存储的地址;填空题:1、已知A 的起始存储位置(基地址)为1000,若按行存储时,元素A 14的第一个字节地址为 (8+4)×6+1000=1072 ;若按列存储时,元素A 47的第一个字节地址为 (6×7+4)×6+1000)=1276 。
(注:数组是从0行0列还是从1行1列计算起呢?由末单元为A 57可知,是从0行0列开始!) 2、设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为 8950 。
答:不考虑0行0列,利用列优先公式: LOC(a ij )=LOC(a c 1,c 2)+[(j-c 2)*(d 1-c 1+1)+i-c 1)]*L 得:LOC(a 32,58)=2048+[(58-1)*(60-1+1)+32-1]]*2=8950选择题:( A )1、假设有60行70列的二维数组a[1…60, 1…70]以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素a[32,58]的存储地址为 。
(无第0行第0列元素)A .16902B .16904C .14454D .答案A, B, C 均不对 答:此题(57列×60行+31行)×2字节+10000=16902( B )2、设矩阵A 是一个对称矩阵,为了节省存储,将其下三角部分(如下图所示)按行序存放在一维数组B[ 1, n(n-1)/2 ]中,对下三角部分中任一元素a i,j (i ≤j), 在一维数组B 中下标k 的值是:A .i(i-1)/2+j-1B .i(i-1)/2+jC .i(i+1)/2+j-1D .i(i+1)/2+j3、从供选择的答案中,选出应填入下面叙述 ? 内的最确切的解答,把相应编号写在答卷的对应栏内。
第5章 数组和广义表

第五章数组和广义表讲课提要【主要内容】1.多维数组的顺序存储结构2.特殊矩阵的压缩存储3.广义表的定义及其与线性表的关系4.广义表的存储结构5.广义表运算实现中递归的应用【教学目标】1.掌握多维数组的顺序存储结构2.掌握特殊矩阵的压缩存储方法3.掌握广义表的定义及其与线性表的关系4.掌握广义表的存储结构5.了解广义表运算实现中递归的应用学习指导1.多维数组的顺序存储结构对于多维数组,有两种存储方式:一是以行为主序(或先行后列)的顺序存放,如BASIC、PASCAL、C等程序设计语言中用的是以行为主的顺序分配,即一行分配完了接着分配下一行。
另一种是以列为主序(先列后行)的顺序存放,如FORTRAN语言中,用的是以列为主序的分配顺序,即一列一列地分配。
以行为主序的分配规律是:最右边的下标先变化,即最右下标从小到大,循环一遍后,右边第二个下标再变,…,从右向左,最后是左下标。
以列为主序分配的规律是:最左边的下标先变化,即最左下标从小到大,循环一遍后,左边第二个下标再变,…,从左向右,最后是右下标。
不论按何种方式存储,只要确定了数组的首地址以及每个数组元素所占用的单元数,就可以将数组元素的存储地址表示为其下标的线性函数。
设有m×n二维数组A mn,以“以行为主序”的分配为例,按照元素的下标确定其地址的计算方法如下。
设数组的基址为LOC(a11),每个数组元素占据L个地址单元,计算a ij 的物理地址的函数为:LOC(a ij) = LOC(a11) + ( (i-1)*n + j-1 ) * L同理,对于三维数组A mnp,即m×n×p数组,对于数组元素a ijk其物理地址为:LOC(a ijk)=LOC(a111)+( ( i-1) *n*p+ (j-1)*p +k-1) )*L注意:在C语言中,数组中每一维的下界定义为0,则:LOC(a ij) = LOC(a00) + ( i*n + j ) * L【例4-1】二维数组A的每一个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。
第5章数组和广义表

A.contants[i]=A.bounds[i+1]*A.constants[i+1]; return ok; }
第5章 数组和广义表
Status DestoryArray(Array &A){ //销毁数组 if(!A.base) return ERROR; free(A.base); A.base=NULL; if(!A.bounds) return ERROR; free(A.bounds); A.bounds=NULL; if(!A.contants) return ERROR; free(A.contants) A.contants=NULL; return ok;
(3) Value(A,&e, index1, …, indexn): 若下标合法,则 用e返回数组A中由index1, …, indexn所指定的元素的值。
(4) Assign(&A,e,indexl,…indexn):若各下标不超界, 则将e赋值为所指定的A的元素值,并返回OK。 。
第5章 数组和广义表
三维数组A(1..r , 1..m , 1..n)可以看成是r个m×n的二维数组,
如图5.5所示。
n
m n
r j- 1
m
k- 1
图5.5 三维数组看成r个m×n的二维数组
第5章 数组和广义表
假定每个元素占一个存储单元,采用以行为主序的方法存 放,即行下标r变化最慢, 纵下标n变化最快。 首元素a111的地 址为Loc[1, 1, 1],求任意元素aijk的地址。
第5章 数组和广义表
以上我们以二维数组为例介绍了数组的结构特性,实际 上数组是一组有固定个数的元素的集合。也就是说,一旦定 义了数组的维数和每一维的上下限,数组中元素的个数就固 定了。 例如二维数组A3×4,它有3行、4列,即由12个元素组 成。由于这个性质,使得对数组的操作不像对线性表的操作 那样可以在表中任意一个合法的位置插入或删除一个元素。 对于数组的操作一般只有两类:
数据结构课件PPT数组和广义表

{ q=1; for (col=1;col<=T.mu;++col) for(p=1;p<=M.tu;++p) if ( M.data[p].j==col ) { T.data[q].i=M.data[p].j; T.data[q].j=M.data[p].i; T.data[q].e=M.data[p].e; ++q; } }
(row) (col) (value)
[0] 1 4 22
[0] 1 5 91
[1] 1 7 15
[1] 2 2 11
[2] 2 2 11
[2] 3 6 28
[3] 2 [4] 3来自6 17 4 -6[3] 4 [4] 4
1 22 3 -6
[5] 4 6 39
[5] 6 2 17
[6] 5 1 91
[6] 6 4 39
cpot[1]=1 cpot[col]=cpot[col-1]+num[col-1]
稀疏矩阵的快速转置(算法5.2)
Status FastTransposeSMatrix(TSMatrix M,TSMatrix &T) { T.mu=M.nu; T.nu=M.mu; T.tu=M.tu;
if (T.tu) { for (col=1;col<=M.nu;++col) num[col]=0; for (t=1;t<=M.tu;++t) ++num[M.data[t].j]; cpot[1]=1; for ( col=2;col<=M.nu;++col) cpot[col]=cpot[col-1]+num[col-1]; for (p=1;p<=M.Tu;++p) { col=M.data[p].j; q=cpot[col]; T.data[q].i=M.data[p].j; T.data[q].j=M.data[p].i; T.data[q].e=M.data[p].e; ++cpot[col]; } }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可以缩写成 : LOC (j1, j2, … , jn) = LOC (0,0, L ,0) +( 其中: 其中:cn = L,ci-1 = bi×ci , ,
23:52
9
数据结构
5.2 数组的顺序表示和实现
● 顺序存储的定位公式
对于数组,一旦规定了它的维数和各维长度,便可以为它分配存储空 假设每个元素占 L 个存储单元,且以行序为主序进行存储,则二维数组 对于数组,一旦规定了它的维数和各维长度, 个存储单元,且以行序为主序进行存储, A间。反之,只要给出数组存放的起始地址、数组的行号数和列号数,以及 中任一元素 ai,j 存储位置可由下式确定 :、数组的行号数和列号数, 反之,只要给出数组存放的起始地址 每个数组元素所占用的存储单元,便可以求得给定下标的数组元素存储位 LOC(ai,j) = LOC(a + × + 每个数组元素所占用的存储单元, 0,0)+(b2×i+j)L 其中: 其中: 置的起始地址。 置的起始地址。 LOC(ai,j) LOC(a0,0) b2 的存储位置; 是 ai, j 的存储位置; 是 a0, 0 的存储位置,即二维数组 A 的起始 的存储位置, 存储位置,也称为基地址或基址; 存储位置,也称为基地址或基址; 是数组第二维的长度。 是数组第二维的长度。
数据结构
数组的抽象数据类型: 数组的抽象数据类型:
ADT Array { 数据对象: =0,…,b 1,i=1,2,…,n, 数据对象:ji=0, ,bi-1,i=1,2, ,n, D={aj1,j2…,jn| n(>0)称为数组的维数,bi是数组第 维的长度, 称为数组的维数, 是数组第i维的长度 维的长度, = 称为数组的维数 ji是数组元素的第 维的下标, aj1,j2…,jn∈ElemSet 是数组元素的第i维的下标 维的下标, ∈ElemSet} 数据关系: = 数据关系:R={R1, R2, ..., Rn} Ri={<aj1,...ji... jn , aj1, ...ji +1, ...jn > | 0 ≤ jk ≤ bk -1, 1 ≤ k ≤ n 且k ≠ i, = 0 ≤ ji ≤ bi -2, aj1,...ji... jn , aj1, ...ji +1, ...jn ∈ D,i=2,...,n } 基本操作: 基本操作: InitArray(&A, n, bound1, ..., boundn) 操作结果: 和各维长度合法,则构造相应的数组A 并返回OK 操作结果:若维数 n 和各维长度合法,则构造相应的数组A,并返回OK DestroyArray(&A) 操作结果:销毁数组A 操作结果:销毁数组A … Assign(&A, e, index1, ..., indexn) 初始条件: 维数组, 为元素变量, 随后是n 个下标值。 初始条件:A是n维数组,e为元素变量, 随后是n 个下标值。 操作结果:若下标不超界,则将e的值赋给所指定的A的元素,并返回OK 操作结果:若下标不超界,则将e的值赋给所指定的A的元素,并返回4 OK 23:52 } ADT Array
数组是由下标和值组成的序对集合。在数组中,一旦给定了下标,就存 数组是由下标和值组成的序对集合。在数组中,一旦给定了下标, 在一个与其相对应的值,称为数组元素。 在一个与其相对应的值,称为数组元素。即数组中每个元素都对应于一组下 , , 标 (j1, j2, …, jn),每个下标的取值范围是 0≤ji≤bi-1,bi 称为第 i 维长度 (i = 1, 2, …, n)。当 n = 1 时, n 维数组退化为定长线性表。因此,n 维数组是线性 。 维数组退化为定长线性表。因此, 表的推广。 表的推广。 二维数组可以看成是这样一个定长线性表: 二维数组可以看成是这样一个定长线性表:它的每个元素也是一个定长 线性表。 线性表。
由于数组一般不作插入或删除操作,也就是说,一旦建立了数组, 由于数组一般不作插入或删除操作,也就是说,一旦建立了数组,那 么结构中的元素个数和元素之间的关系就不再发生变动了。因此, 么结构中的元素个数和元素之间的关系就不再发生变动了。因此,采用顺 序存储结构表示数组。 序存储结构表示数组。 存储单元是一维的结构,而数组是个多维的结构, 存储单元是一维的结构,而数组是个多维的结构,因此用一组连续存 储单元存放数组的数据元素又有个先后次序的问题。因此, 储单元存放数组的数据元素又有个先后次序的问题。因此,对二维数组可 以有两种顺序存储方式: 以有两种顺序存储方式: (1) 以列为主序(column major order)的存储方式,即按列优先,逐 以列为主序( )的存储方式,即按列优先, 列顺序存储,又称为列优先顺序。 列顺序存储,又称为列优先顺序。 (2) 以行为主序(row major order)的存储方式,即按行优先,逐行顺 以行为主序( )的存储方式,即按行优先, 序存储,又称为行优先顺序。 序存储,又称为行优先顺序。
数据结构
第5章 数组与广义表 章
5.1 数组的定义 5.2 数组的顺序表示和实现 5.3 矩阵的压缩存储 5.4 广义表的表示 5.5 广义表的存储结构
23:52
1
数据结构
5.1 数组的定义
如果一个向量(线性表)的所有元素又都是向量(子向量), 如果一个向量(线性表)的所有元素又都是向量(子向量), 并且这些向量具有相同的上限和下限标号, 并且这些向量具有相同的上限和下限标号,那么这类特殊的形 式向量称为数组(array) (array)。 式向量称为数组(array)。
23:52
5
数据结构
A ×4 5
2 3 = 7 8 7
3 5 2 6 6 3 3 2 7 2 9 8 5 4 7
2
3
7
8
7
3
6
3
2
5
5
6
2
9
4
2
3
7
8
7
LOC(a0,0)
LOC(a0,1)
LOC(a0,2) 以列为主序存储数组 A
LOC(a0,3)
23:52
6
数据结构
5.2 数组的顺序表示和实现
23:52
10
数据结构
5.2 数组的顺序表示和实现
同理, 维数组的元素存储位置的计算公式。 同理,可以推出 n 维数组的元素存储位置的计算公式。 LOC (j1, j2, … , jn) 容易看出,数组元素的存储位置是其下标的线性函数, 容易看出, 数组元素的存储位置是其下标的线性函数 , = LOC (0, 0, … , 0) + ( b2× … × bn× j1 + 一旦确定了数组各维的长度, 就是常数。 一旦确定了数组各维的长度,ci 就是常数。由于计算各个 此式称为× 维数组的 + bn× jn-1 + jn ) L b3× … n b × j2+ … 元素位置的时间相等, n 元素位置的时间相等,所以存取数组中任一元素的时间也 n映象函数(定位公式) -1 n 映象函数(定位公式) 相等。称具有这一特点的存储结构为随机存储结构。 相等。称具有这一特点的存储结构为随机存储结构。 = LOC (0,0,L,0) +(∑ ji ∏bk + jn )L
数据结构
5.2 数组的顺序表示和实现
由于数组一般不作插入或删除操作,也就是说,一旦建立了数组, 由于数组一般不作插入或删除操作,也就是说,一旦建立了数组,那 么结构中的元素个数和元素之间的关系就不再发生变动了。因此, 么结构中的元素个数和元素之间的关系就不再发生变动了。因此,采用顺 序存储结构表示数组。 序存储结构表示数组。 存储单元是一维的结构,而数组是个多维的结构, 存储单元是一维的结构,而数组是个多维的结构,因此用一组连续存 储单元存放数组的数据元素又有个先后次序的问题。因此, 储单元存放数组的数据元素又有个先后次序的问题。因此,对二维数组可 以有两种顺序存储方式: 以有两种顺序存储方式: (1) 以列为主序(column major order)的存储方式,即按列优先,逐 以列为主序( )的存储方式,即按列优先, 列顺序存储,又称为列优先顺序。 列顺序存储,又称为列优先顺序。
5.2 数组的顺序表示和实现
由于数组一般不作插入或删除操作,也就是说,一旦建立了数组, 由于数组一般不作插入或删除操作,也就是说,一旦建立了数组,那 么结构中的元素个数和元素之间的关系就不再发生变动了。因此, 么结构中的元素个数和元素之间的关系就不再发生变动了。因此,采用顺 序存储结构表示数组。 序存储结构表示数组。 存储单元是一维的结构,而数组是个多维的结构, 存储单元是一维的结构,而数组是个多维的结构,因此用一组连续存 维数组: 这两个存储规则可以推广到 n 维数组: 储单元存放数组的数据元素又有个先后次序的问题。因此, 储单元存放数组的数据元素又有个先后次序的问题。因此,对二维数组可 以行为主序的存储可以规定为最右的下标 以有两种顺序存储方式: 以有两种顺序存储方式: 优先,从右向左; 优先, 从右向左; 以列为主序的存储可以 (1) 以列为主序(column major order)的存储方式,即按列优先,逐 以列为主序( )的存储方式,即按列优先, 规定为最左的下标优先,从左到右。 规定为最左的下标优先,从左到右。 列顺序存储,又称为列优先顺序。 列顺序存储,又称为列优先顺序。 (2) 以行为主序(row major order)的存储方式,即按行优先,逐行顺 以行为主序( )的存储方式,即按行优先, 序存储,又称为行优先顺序。 序存储,又称为行优先顺序。
23:52
7
数据结构
A ×4 5
2 3 = 7 8 7
3 5 2 6 6 3 3 2 7 2 9 8 5 4 7
2
3
5
2
3
6
6
3
7
327来自829