C++ 稀疏矩阵

C++ 稀疏矩阵,c++,algorithm,sparse-matrix,C++,Algorithm,Sparse Matrix,如何显示稀疏矩阵?有人想帮我说:使用链表。 我也读过一些我们应该创建这样的类的地方: SpMatrix { int non_zero_value; int i,j; } 确切地说,什么是稀疏矩阵,我读过wekipedia和其他网站。但问题还没有解决 提前感谢。稀疏矩阵是大多数元素等于0的矩阵。例如,仅在对角线上具有非零元素的矩阵显然是稀疏矩阵: 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 4 显然,存储矩阵的所有元素是浪费空间的,因为大多数元素都是零。存储

如何显示稀疏矩阵?有人想帮我说:使用链表。 我也读过一些我们应该创建这样的类的地方:

SpMatrix
{
    int non_zero_value;
    int i,j;
}
确切地说,什么是稀疏矩阵,我读过wekipedia和其他网站。但问题还没有解决


提前感谢。

稀疏矩阵是大多数元素等于0的矩阵。例如,仅在对角线上具有非零元素的矩阵显然是稀疏矩阵:

1 0 0 0
0 2 0 0 
0 0 3 0 
0 0 0 4
显然,存储矩阵的所有元素是浪费空间的,因为大多数元素都是零。存储这样的矩阵有很多技术,这实际上取决于您希望的通用性和手头的具体问题

大多数情况下,对于您想要支持的每种不同类型的稀疏矩阵,您都会有一个特定的类,例如对角线、三角形、带状对角线等。这通常比一般解决方案提供更高效的代码


这是一个复杂的问题,没有现成的食谱。你可以使用链表或者其他任何东西

稀疏矩阵是大多数元素等于0的矩阵。例如,仅在对角线上具有非零元素的矩阵显然是稀疏矩阵:

1 0 0 0
0 2 0 0 
0 0 3 0 
0 0 0 4
显然,存储矩阵的所有元素是浪费空间的,因为大多数元素都是零。存储这样的矩阵有很多技术,这实际上取决于您希望的通用性和手头的具体问题

大多数情况下,对于您想要支持的每种不同类型的稀疏矩阵,您都会有一个特定的类,例如对角线、三角形、带状对角线等。这通常比一般解决方案提供更高效的代码


这是一个复杂的问题,没有现成的食谱。你可以使用链表或者其他任何东西

您的问题相当于如何显示稀疏矩阵?事实上,我该怎么做呢?当我们在这里的时候,一个是什么?我需要解决我的问题,但从来没有告诉我们问题是什么。你显然想学习稀疏矩阵。如果你是认真的,我建议你买Tim Davis的书:你的问题相当于如何显示稀疏矩阵?事实上,我该怎么做呢?当我们在这里的时候,一个是什么?我需要解决我的问题,但从来没有告诉我们问题是什么。你显然想学习稀疏矩阵。如果你是认真的,我建议你买蒂姆·戴维斯的书:嗯,也有通用的方法。例如,压缩行存储。当然,一般来说,您可以使用坐标+值。很难看到链接列表是合适选择的用例。当然,也有通用方法。例如,压缩行存储。当然,通常您可以使用坐标+值。很难看到链接列表是一个合适的选择的用例