salut,
Qui peut m'aider à comprendre le fonctionnement des Vecteur creux .
J'ai cherché sur google pour comprendre ce sujet mais je n'ai rien trouvé .
Voilà le sujet :
1er partie :
2eme partie :
Merci d'avance .
salut,
Qui peut m'aider à comprendre le fonctionnement des Vecteur creux .
J'ai cherché sur google pour comprendre ce sujet mais je n'ai rien trouvé .
Voilà le sujet :
1er partie :
2eme partie :
Merci d'avance .
Salut,
il me semble en fait que ce soit le but de l'exercie
Dans ton exercice, on part d'un très grand vecteur qui en fait contient beaucoup de 0 et quelques valeurs non nulles éparses. Le but d'un vecteur est d'associer un index et une valeur, on veut pouvoir accéder à la valeur en position 0, 4, ou n.
On constate que beaucoup de ces valeurs sont nulles et on se pose la question "est-il possible de ne stocker que les valeurs non nulles et garder les mêmes fonctionnalités en utilisant moins de mémoire ?"
La réponse est oui, il suffit de garder l'indice où se trouve une valeur non nulle et cette valeur.
Si on met dans un tableau ce couple (indice, valeur) on obtient le VEC_COMP de ton exercice. Si on utilise une liste chaînée on obtient le VEC_LIST de ton exercice.
Merci pour votre indication ;
voila j'ai deja commencé le programme qui suprimme tout les zeros qui sont dans un tableau .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 int suprrim_zero(int *tab) { int i = 0, j = 0; int *tmp=tab; while (*(tab + i)!=NULL) { if (*(tab + i) != 0) { *(tmp + j++) = *(tab + i); } i++; } return ?; /* Est-ce que je dois retourner tab ou quoi */ }
Bon, il ne s'agit pas supprimer de les 0. Il s'agit déjà de définir les 3 type de la question 2.1, as-tu fait cela ?
Tu as trois structures différentes : VECTEUR, VEC_COMP et VEC_LIST.
Tu va devoir définir ces types, les fonctions pour les manipuler pour finalement pouvoir transformer un VECTEUR en VEC_COMP ou en VEC_LIST, en aucun cas il n'est demandé de supprimer les 0 de VECTEUR.
Donc avant de coder quoi que ce soit il faut déjà que tu définisses ces types = la question 2.1.1.
J'ajoute que, dans ton énoncé, « vecteur creux » doit se comprendre de la même manière que « matrice creuse », par exemple : c'est un vecteur tout-à-fait ordinaire mais qui contient majoritairement des zéros (qui sont généralement eux-mêmes des valeurs par défaut pour des termes non spécifiés).
Il n'est pas précisé à partir de tel taux de zéros, par rapport au reste, un vecteur est considéré comme creux. On utilisera simplement ce terme lorsqu'un objet mathématique contient suffisamment de zéros par rapport au reste pour qu'il devienne pertinent de faire un traitement particulier.
Partager