Chainage, la fonction insertion

tsuka -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,
j'ai besoin d'aide pour mon code c++, je dois grâce aux enregistrements de maillonT et chainageT, créer une fonction insertion permettant d'insérer un élément de type T EN TETE du chainage .
Je n'arrive pas à compiler, il y a surement un problème avec mon pointeur, je pensais pourtant que à la base il fallait dire que ch.tete devient mem(pm).succ et que pm devient du coup la tete du maillon
Merci d'avance pour votre aide

typedef int T;


typedef struct maillonT {
T elt;
maillonT *succ;
} maillonT;

typedef struct chainageT {
maillonT *tete;
maillonT *queue;
int nb_elt;
} chainageT;


// ajout d'un nouvel élément en tête


void insertionT(chainageT & ch,T e){
//variable, pointeur vers maillonT
ch.nb_elt;
maillonT * pm = new maillonT;
if (pm==NULL){
pm->elt=e;
pm->succ=ch.tete;
ch.tete=pm;
ch.nb_elt=ch.(nb_elt+1);
}
}
A voir également:

1 réponse

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
salut. Déjà, en C++ le typedef tel que tu l'utilises est inutile.
void insertionT(chainageT & ch,T e){
//variable, pointeur vers maillonT
ch.nb_elt;// instruction inutile, elle ne fait rien.
maillonT * pm = new maillonT;
if (pm==NULL){// instruction débile, si pm vaut NULL c'est qu'il a été mal alloué, donc ne surtout pas le modifier et emettre un message d'erreur.
pm->elt=e;
pm->succ=ch.tete;
ch.tete=pm;
ch.nb_elt=ch.(nb_elt+1);// 8-O quel est le sens de cette instruction dans ta tête ????
}
}

Sinon, pour le reste ça semble bon. Autre remarque, tu fait du C++, utilise la notion d'objet et de fonction membre, c'est mieux. Tu mets insertionT en tant que fonction membre de chainageT, et tu vires le paramètre ch.
0