3

在 C 中用于稀疏动态矩阵的最合适的数据结构是什么。我知道耶鲁格式,但它适用于静态矩阵。我需要能够在其中添加行列和值。

4

2 回答 2

3

一般来说,一个链表数组。如果大多数操作是基于行的,则每个列表代表一行,否则,每个列表代表一列。你可以在这里获得更多信息

 typedef struct matrix { 
    node**  rowList;     // rowList is a pointer to the array of rows 
    node** columnList; // column list is a pointer to the array of columns. 
    int  rows, columns;  // store the number of rows and columns of the matrix 
 } matrix


 typedef struct node { 
    int row, column, 
    double value; 
    struct node*  rowPtr; 
    struct node*  colPtr; 
 } node;
于 2013-02-20T09:10:31.047 回答
0

一个哈希表。

示例:键可以是 row<<16|col.

于 2013-02-20T09:10:21.157 回答