数据结构 设A为n阶对称矩阵,采用压缩存储存放于一维数组F[n(n+1)/2]中(从F[0]开始存放),请分别给出
设A为n阶对称矩阵,采用压缩存储存放于一维数组F[n(n+1)/2]中(从F[0]开始存放),请分别给出存放上三角阵时任一矩阵元素aij(1≤i,j≤n)的地址计算公式和...
设A为n阶对称矩阵,采用压缩存储存放于一维数组F[n(n+1)/2]中(从F[0]开始存放),请分别给出存放上三角阵时任一矩阵元素aij(1≤i,j≤n)的地址计算公式和存放下三角阵时任一矩阵元素aij(1≤i,j≤n)的地址计算公式。
展开
展开全部
你这个没定义清楚,一维数组和矩阵的映射有两种可能,一种是:
0
1 2
3 4 5
6 7 8 9
另一种是
0
1 4
2 5 7
3 6 8 9
问题也没那么复杂,如果上面的定义清楚了,其实就是给出行列,求矩阵元素在一维数组中的下标
以第一种为例:
int get(int F[], int row, int column) {
if (row > column) {
return row*(row-1)/2 + column;
} else {
return column*(column-1)/2 + row;
}
}
0
1 2
3 4 5
6 7 8 9
另一种是
0
1 4
2 5 7
3 6 8 9
问题也没那么复杂,如果上面的定义清楚了,其实就是给出行列,求矩阵元素在一维数组中的下标
以第一种为例:
int get(int F[], int row, int column) {
if (row > column) {
return row*(row-1)/2 + column;
} else {
return column*(column-1)/2 + row;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询