Insertion en queue d'une liste chainée
Bonjour :)
Je suis encore débutante en listes chaînées, j'ai beaucoup de lacune, et j'ai un exercice qui demande d'écrire la fonction qui permet d’insérer un élément en queue de liste.
Je possède deux fonctions, une j'ai écrite et l'autre qui ne m'appartient pas. Je cherche celle qui serait plus correcte et plus performante et donc la mieux notée, aidez-moi s'il vous plaît à corriger les erreurs. J'ai énormément besoin de votre aide, et merci de bien vouloir m'aider :D
Code:
1 2 3 4 5
|
typedef struct liste{
int val;
struct liste* svt;
}liste; |
1ère fonction: (Celle que j'ai faite)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
liste* InsertQueue(liste* L, int n){
liste* maillon=(liste*)malloc(sizeof(liste));
maillon->val=n;
maillon->svt=NULL;
if(L==NULL){return maillon;}
else{
liste* ptr=L;
while(ptr!=NULL) { ptr=ptr->svt;}
ptr->svt=maillon;
return L;
}
} |
2ème fonction: (Celle de mon ami)
Code:
1 2 3 4 5 6 7 8
|
void InsertQueue(liste* L, int n){
new=(liste*)malloc(sizeof(liste));
new->svt=NULL;
tmp=L;
while(tmp->svt!=NULL) {tmp=tmp->svt;}
tmp->svt=new;
} |