Matrice creuse avec les listes linéaires chainées
Fermé
Ra_Wa
Messages postés
1
Date d'inscription
lundi 21 mars 2016
Statut
Membre
Dernière intervention
21 mars 2016
-
21 mars 2016 à 17:19
mamiemando Messages postés 32283 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2023 - 30 mars 2016 à 19:06
mamiemando Messages postés 32283 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2023 - 30 mars 2016 à 19:06
A voir également:
- Matrice creuse avec les listes linéaires chainées
- Afficher une matrice en c ✓ - Forum C
- Remplir une matrice matlab ✓ - Forum Matlab
- Triez la liste comme sur cette illustration (attention, on ne voit que le début …). quel est le mot formé par les 6 dernières lettres de la colonne code ? - Forum Excel
- Remplir une matrice algorithme - Forum Pascal
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
1 réponse
mamiemando
Messages postés
32283
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
17 mars 2023
7 572
Modifié par mamiemando le 30/03/2016 à 19:08
Modifié par mamiemando le 30/03/2016 à 19:08
Bonjour,
Il faudrait nous donner la définition de tes structures pour plus de clarté. Si j'ai bien compris ça doit être quelque chose du genre :
Du coup itérer dessus revient à faire :
Bonne chance
Il faudrait nous donner la définition de tes structures pour plus de clarté. Si j'ai bien compris ça doit être quelque chose du genre :
typedef struct _cell_t {
unsigned column_index;
double value;
struct _cell_t * next_cell; // NULL si dernière cellule de la ligne
};
typedef struct _line_t {
unsigned line_index;
cell_t * first_cell; // Non NULL si la ligne est non vide.
struct _line_t * next_line; // NULL si dernière ligne
} line_t;
typedef struct _sparse_matrix_t {
line_t * data;
} sparse_matrix_t;
Du coup itérer dessus revient à faire :
double sum(const sparse_matrix_t * m) {
double sum = 0;
for (line_t * line = m->data ; line ; line = line->next_line) {
// unsigned i = line->line_index;
for (cell_t * cell = line->cell ; cell ; cell = cell->next_cell) {
// unsigned j = cell->column_index;
sum += cell->value;
}
}
return sum;
}
Bonne chance