做果盘网站,科技感网页模板,wordpress图片不加载插件下载地址,微信建微网站给出对称矩阵、三角矩阵的节省内存的存贮结构并写出相应的输入、输出算法。
对称矩阵和三角矩阵可以通过特殊的存储结构来节省内存。这种存储结构只存储矩阵的一部分元素#xff0c;而不是全部元素。
对称矩阵#xff1a;对于一个n阶对称矩阵#xff0c;我们只需要存储主对…给出对称矩阵、三角矩阵的节省内存的存贮结构并写出相应的输入、输出算法。
对称矩阵和三角矩阵可以通过特殊的存储结构来节省内存。这种存储结构只存储矩阵的一部分元素而不是全部元素。
对称矩阵对于一个n阶对称矩阵我们只需要存储主对角线及其上方或下方的元素。这可以通过一个一维数组来实现数组的长度为n*(n1)/2。对于矩阵中的元素a[i][j]如果ij则其在数组中的位置为i*(i1)/2j。 #include stdio.h#define MAX_ROW_INDEX 100
#define MAX_COL_INDEX 100
#define MAX_INDEX 100typedef int Elemtype;// 在存储对称矩阵的一维数组A中取对称矩阵的第i行第j列元素给elem
int getValueSymmetricMatrix(int A[], Elemtype *elem, int i, int j) {// 检查索引是否有效if(i 1 || i MAX_ROW_INDEX || j 1 || j MAX_COL_INDEX)return 0;int k;// 计算元素在数组中的位置if (i j) k i * (i - 1) / 2 j - 1;else k j * (j - 1) / 2 i - 1;// 获取元素的值*elem A[k];return 1;
}三角矩阵对于一个n阶上三角矩阵我们只需要存储主对角线及其上方的元素。这也可以通过一个一维数组来实现数组的长度为n*(n1)/2。对于矩阵中的元素a[i][j]如果ij则其在数组中的位置为i*(i1)/2j。 #include stdio.h#define MAX_ROW_INDEX 100
#define MAX_COL_INDEX 100
#define MAX_INDEX 100typedef int Elemtype;// 在存储下三角矩阵的一维数组A中取下三角矩阵的第i行第j列元素给elem
int getValueLowerTriangularMatrix(int A[], Elemtype *elem, int i, int j) {// 检查索引是否有效if(i 1 || i MAX_ROW_INDEX || j 1 || j MAX_COL_INDEX)return 0;int n MAX_INDEX;int k;// 计算元素在数组中的位置if (i j) k i * (i - 1) / 2 j - 1;else k n * (n 1) / 2;// 获取元素的值*elem A[k];return 1;
}