Мне нужна функция, которая принимает две разреженные матрицы (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
}
Разреженная матрица соответствует представлению связанного списка. Таким образом, таблица имеет узлы с ненулевыми элементами разреженной таблицы, строкой и столбцом, в котором она находится, а также следующий указатель на следующий узел.