正在加载图片...
(1)二维下标为(i,j),存储空间的一维下标 为k,给出k与i,j的关系 (1<=i,j<=n, 结 0<=k<n*(n+1)/2); k=(i-1)*i/2+j-1(讠>=j)(,j)在下三角区 k=-1)j2+1(i<j)()在上三角区 int into k(int i, int ]i 组 if(i<l j<1 )return(-1); f(i>=j return((i-1)*1/2+j-1) return((-1)*j/2+i-1);} 13 (2)输入并存储对称矩阵的算法(以行序为主序) void Input(ET All, int n)t 数据结构之 for(k=0;k<(n+1)n/2;k++) scanf(&AkD;) 数(3)读取对称矩阵中某个元素的算法 Status GetElem(ET All, int i, int j, ET &e)i if(k=ijTo k(i,j>=0)t e=alk; return O; else return error7 数 据 结 构 之 数 组 和 广 义 表 13 (1) 二维下标为( i , j ),存储空间的一维下标 为k,给出k与 i , j 的关系(1<= i, j <= n , 0<= k < n*(n+1)/2); k=(i-1)*i/2+j-1 ( i>=j) (i, j)在下三角区 k=(j-1)*j/2+i-1 (i< j) (i, j)在上三角区 int ij_TO_k(int i , int j){ if( i<1 || j<1 )return(-1); if(i>=j) return((i-1)*i/2+j-1); return ((j-1)*j/2+i-1); } 数 据 结 构 之 数 组 和 广 义 表 14 (2)输入并存储对称矩阵的算法(以行序为主序) void Input(ET A[ ], int n){ for(k=0;k<(n+1)*n/2; k++) scanf(&A[k]); } (3)读取对称矩阵中某个元素的算法: Status GetElem(ET A[ ], int i, int j , ET &e) { if(k=ij_TO_k(i , j)>=0){ e=A[k];return OK; } else return ERROR; }
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有