Разреженный мартикс как умножение связанного списка в C - PullRequest
0 голосов
/ 18 апреля 2020

Мне нужна функция, которая принимает две разреженные матрицы (table1 и table2) и должна умножить их и сделать table3

typedef struct node{
    int row;
    int column;
    float value;
    struct node *next;
} node;

typedef struct table{
    node *head;
    int number_of_rows;
    int number_of_columns;
} table;

void Multables(table table1, table table2, table *table3){
     //tablesize must be MxN and NxK
     if (table1.number_of_rows != table2.number_of_columns){
        printf("Multiplication not allowed.");
     }
     //table3 size will be MxK
     table3->number_of_rows = table1.number_of_rows;
     table3->number_of_columns = table2.number_of_columns;

     //start multiplication
}

Разреженная матрица соответствует представлению связанного списка. Таким образом, таблица имеет узлы с ненулевыми элементами разреженной таблицы, строкой и столбцом, в котором она находится, а также следующий указатель на следующий узел.

...