第五章数组和广义表5.1数组的类型定义5.3矩阵的压缩存储5.2数组的顺序表示和实现5.4广义表的类型定义5.5广义表的存储结构学习提要:1.了解数组的两种存储表示方法,并掌握数组在以行为主的存储结构中的地址计算方法。2.掌握对特殊矩阵进行压缩存储时的下标变换公式。3.了解稀疏矩阵的两种压缩存储方法的特点和适用范围,领会以三元组表示稀疏矩阵时进行矩阵运算采用的处理方法。4.掌握广义表的结构特点及其存储表示方法。ADTArray{数据对象:D={aj1,j2,...,,ji,jn|ji=0,...,bi-1,i=1,2,..,n}数据关系:R={R1,R2,...,Rn}Ri={
|0jkbk-1,1kn且ki,0jibi-2,i=2,...,n}}ADTArray基本操作:§5.1数组的类型定义基本操作:InitArray(&A,n,bound1,...,boundn)DestroyArray(&A)Value(A,&e,index1,...,indexn)Assign(&A,e,index1,...,indexn)itArray(&A,n,bound1,...,boundn)操作结果:若维数n和各维长度合法,则构造相应的数组A,返回OK。DestroyArray(&A)操作结果:销毁数组A。Value(A,&e,index1,...,indexn)初始条件:A是n维数组,e为元素变量,随后是n个下标值。操作结果:若各下标不超界,则e赋值为所指定的A的元素值,并回OK。Assign(&A,e,index1,...,indexn)初始条件:A是n维数组,e为元素变量,随后是n个下标值。操作结果:若下标不超界,则将e的值赋给所二维数组的定义:数据对象:D={aij|0≤i≤b1-1,0≤j≤b2-1}数据关系:R={ROW,COL}ROW={|0≤i≤b1-2,0≤j≤b2-1}COL={|0≤i≤b1-1,0≤j≤b2-2}二维数组的定义:111110111110100100.................................nmmmnnnmaaaaaaaaaA§5.2数组的顺序表示和实现类型特点:(1)只有引用型操作,没有加工型操作;(2)数组是多维的结构,而存储空间是一个一维的结构。有两种顺序映象的方式:(1)以行序为主序(2)以列序为主序a00a01……a0n-1a10a11……a1n-1am-10am-11…am-1n-1………………….按行序为主序存放am-1n-1……..am-11am-10……….a1n-1……..a11a10a0n-1…….a01a0001n-1m*n-1nLOC(i,j)=LOC(0,0)+(n×i+j)×L按列序为主序存放01m-1m*n-1mam-1n-1……..a1n-1a0n-1……….am-11……..a11a01am-10…….a10a00a00a01……..a0n-1a10a11……..a1n-1am-10am-11…am-1n-1………………….LOC(i,j)=LOC(0,0)+(m×j+i)×L称为基地址或基址以“行序为主序”的存...