Tableau de listes chaînée en C
Julien
-
tafiscobar Messages postés 1277 Date d'inscription Statut Contributeur Dernière intervention -
tafiscobar Messages postés 1277 Date d'inscription Statut Contributeur Dernière intervention -
Salut à tout le monde!!!!!!
Je viens avec un problème de gros débutant, désolé :-)
J'ai un tableau statique (pour rester simple) allant obligatoirement de 0 à 200.
Pour chacune des cases du tableau je dois pouvoir ajouter une liste chaînée.
J'ai une structure du type :
typedef struct Cellule{
int valeur1;
int valeur2;
struct Cellule *suivant;
}*File;
1-Déjà comment dois-je déclarer initialement mon tableau vide?
2-Ensuite il faut que je puisse ajouter une cellule comme celle ci-dessus. Je connaît valeur1, valeur2 et le numéro de la case du tableau auquel je dois faire l'ajout de la cellule.
Par exemple, je dois ajouter ma cellule sur la liste de la case 59 du tableau. De plus, et là est le gros problème, les cellules doivent être triés par ordre croissant de la valeur1 et si deux valeur1 sont égales alors on trie par la valeur2.
Je sais ajouter en fin de liste une cellule mais je vois pas comment en plein milieu et dans un tableau ;-(((.
Pouvez-vous m'aidez!!!!!!
Julien
-------
Je viens avec un problème de gros débutant, désolé :-)
J'ai un tableau statique (pour rester simple) allant obligatoirement de 0 à 200.
Pour chacune des cases du tableau je dois pouvoir ajouter une liste chaînée.
J'ai une structure du type :
typedef struct Cellule{
int valeur1;
int valeur2;
struct Cellule *suivant;
}*File;
1-Déjà comment dois-je déclarer initialement mon tableau vide?
2-Ensuite il faut que je puisse ajouter une cellule comme celle ci-dessus. Je connaît valeur1, valeur2 et le numéro de la case du tableau auquel je dois faire l'ajout de la cellule.
Par exemple, je dois ajouter ma cellule sur la liste de la case 59 du tableau. De plus, et là est le gros problème, les cellules doivent être triés par ordre croissant de la valeur1 et si deux valeur1 sont égales alors on trie par la valeur2.
Je sais ajouter en fin de liste une cellule mais je vois pas comment en plein milieu et dans un tableau ;-(((.
Pouvez-vous m'aidez!!!!!!
Julien
-------
A voir également:
- Tableau de listes chaînée en C
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
1 réponse
Salut, il faut faire suivre en cours (lolllll)
Il est pas performant, mais je suis fatigué, c'etait juste pour te donner une idée, a toi de faire avec!!!
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
File tab_cell[100]; //déclaration du tableau de cellues for (int i = 0; i < 100; i++) // initialise les differentes cases tab_cell[i]= NULL; //insérer a la position 0<= j < 100, la cellule c // on cherche sa position pour l'inserer File tmp = tab_file[j]; File pred = tab_file[j]; if (tmp == NULL) { tab_file[j] = c; c->next = NULL } else { while (tmp != NULL) { if (tmp->valuer1 < c.valeur1) { //on peut l'inserer avant cette cellule pred->next = c; c->next = tmp; break; } else if (tmp->valeur1 > c->valeur1) { pred = tmp; tmp = tmp->next; } else { // on teste sur valeur2 if (tmp->valeur2 < c.valeur2) { c->next = tmp->next; tmp->next = c; } else { pred->next = c; c->next = tmp; } break; } } if (tmp == NULL) { pred->next = c; c->next = NULL; } }
Il est pas performant, mais je suis fatigué, c'etait juste pour te donner une idée, a toi de faire avec!!!
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!