数组的声明:动态的声明 这里要注意的是,内存被分配出去也必须加以回收, 否则会造成内存泄漏( memory leak) for(int i=0; i<row; i++) deleted x: delete x: 对于3维或者更高维的数组,过程是类似的 北京大学信息学院 版权所有,转载或翻印必究 Page 16
北京大学信息学院 ©版权所有,转载或翻印必究 Page 16 数组的声明:动态的声明 ◼ 这里要注意的是,内存被分配出去也必须加以回收, 否则会造成内存泄漏(memory leak) ◼ for(int i=0;i<row;i++) delete[] X[i]; delete []X; 对于3维或者更高维的数组,过程是类似的
士用数组表示特殊矩阵 二维数组可以被看作是矩阵,所以它也经常被用来表 示矩阵 三角矩阵可以被分为上三角矩阵和下三角矩阵,它是 指m阶矩阵中的下(上)三角的元素都是0或者一个常数 n在上三角矩阵中,当数组的下标j时,数组元素ai[j=c; n而在下三角矩阵中,当下标j时,ali[jl=c 假设以一维数组1ist[0.(n2+n)/2-1]作为n阶下三角 矩阵A的存储结构 原来矩阵中的元素a;;与线性表相应元素的对应位置为 list[12+1)2+ j](i>=j) 北京大学信息学院 版权所有,转载或翻印必究 Page 17
北京大学信息学院 ©版权所有,转载或翻印必究 Page 17 用数组表示特殊矩阵 ◼ 二维数组可以被看作是矩阵,所以它也经常被用来表 示矩阵 ◼ 三角矩阵可以被分为上三角矩阵和下三角矩阵,它是 指n阶矩阵中的下(上)三角的元素都是0或者一个常数 ◼ 在上三角矩阵中,当数组的下标i>j时,数组元素a[i][j]=c; ◼ 而在下三角矩阵中,当下标i<j时,a[i][j]=c。 ◼ 假设以一维数组list[0..(n2+n)/2-1]作为n阶下三角 矩阵A的存储结构 ◼ 原来矩阵中的元素ai,j与线性表相应元素的对应位置为 list[(i2+i)/2 + j](i>=j)
下三角矩阵图例 0070 050 0 10 900 062207 北京大学信息学院 版权所有,转载或翻印必究 Page 18
北京大学信息学院 ©版权所有,转载或翻印必究 Page 18 下三角矩阵图例 0 0 0 7 5 0 0 0 1 0 9 0 0 1 8 0 6 2 2 0 7
用数组表示特殊矩阵(续) ■对称矩阵指的是一个n阶矩阵,它的元素满足性质 a1:=a;;0<=(i,j)<n。在用数组存储的时候,元素 aillil=a[ill 007090 05006 0 10 018 2207 北京大学信息学院 版权所有,转载或翻印必究 Page 19
北京大学信息学院 ©版权所有,转载或翻印必究 Page 19 用数组表示特殊矩阵(续) ◼ 对称矩阵指的是一个n阶矩阵,它的元素满足性质 ai,j=aj,i,0<=(i, j)<n。在用数组存储的时候,元素 a[i][j]=a[j][i] 0 0 0 7 5 0 0 0 1 0 9 0 0 1 8 0 6 2 2 0 7
为了节省空间,存储其下三角的值,而对角线之上的 值通过对称关系映射过去。 以一维数组sa0.n(n+1)2作为n阶对称矩阵A的存储结 构,则sak和矩阵元a之间存在着一一对应的关系: j(j+1 L < 2 k (i+1 +j当≥j 北京大学信息学院 版权所有,转载或翻印必究 Page 20
北京大学信息学院 ©版权所有,转载或翻印必究 Page 20 ◼ 为了节省空间,存储其下三角的值,而对角线之上的 值通过对称关系映射过去。 ◼ 以一维数组sa[0..n(n+1)/2]作为n阶对称矩阵A的存储结 构,则sa[k]和矩阵元ai,j之间存在着一一对应的关系 : + + + + = j i j i i i i j j j k 当 当 , 2 ( 1) , 2 ( 1)