Liste chainée - langage C
haktarus
-
haktarus -
haktarus -
Bonsoir, j'ai un problème tout simple, que je n'arrive pas à résoudre.
Je souhaiterais créer une fonction permettant de retourner le contenu de ma liste chainée à un rang donné en paramètre. Comme lorsque l'on fait tab[i] avec un tableau.
Merci de votre aide,
Je souhaiterais créer une fonction permettant de retourner le contenu de ma liste chainée à un rang donné en paramètre. Comme lorsque l'on fait tab[i] avec un tableau.
Merci de votre aide,
3 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
Bonjour, je pense que tu dois simplement parcourir la liste et t’arrêter quand tu es arrivé au rang donné en paramètre.-
-
typedef struct element element;
struct element
{
int val;
struct element *nxt;
};
typedef element* llist;
llist add(llist liste, int valeur)
{
element* nouvelElement = malloc(sizeof(element));
nouvelElement->val = valeur;
nouvelElement->nxt = NULL;
if(liste == NULL)
{
return nouvelElement;
}
else
{
element* temp=liste;
while(temp->nxt != NULL)
{
temp = temp->nxt;
}
temp->nxt = nouvelElement;
return liste;
}
}
int size(llist liste)
{
if(liste == NULL)
return 0;
return size(liste->nxt)+1;
}
void disp(llist liste)
{
element *tmp = liste;
while(tmp != NULL)
{
printf("%d ", tmp->val);
tmp = tmp->nxt;
}
}
-
-
je sais comment faire mais je ne sais pas quelle sont les différents fonctions à utiliser pour le faire.
-
bonsoir, pour cet exercice, dois-tu utiliser uniquement ces différentes fonctions, ou peux-tu écrire des fonctions supplémentaires?
peux-tu nous montrer ton programme colorisé et indenté?
peux-tu nous expliquer comment tu penses faire, sans choisir les fonctions à utiliser?
peux-tu déjà déclarer ta fonction, son type et ses paramètres?
j'avais suggéré de parcourir la liste et t’arrêter quand tu es arrivé au rang donné en paramètre. reconnais-tu dans le code que tu as partagé les instructions pour parcourir la liste? est-ce toi qui a écrit ce code? -
-
-
Si la liste est trop courte ou vide je pense retourner NULL ou bien un message d'erreur disant trop court...
Toutefois pour le programme que je suis entrain de réaliser actuellement, je sais que je dépasserais pas la taille de la liste. Je suis entrain de réaliser un solveur du compte est bon.
Mais je bloque vraiment pour cette partie qui est cruciale, je pourrais essayer de comprendre plus tard, car je dois le finir avant ce soir. -
-
-
J'ai quasiment fini le projet mais j'ai utilisé des tableaux mais selon les nombre utilisés je dépasse ou alors c'est trop lent à calculer. Dû coups avec des listes j'ai trouve une façon de le faire mais j'arrive pas à afficher une valeur de la liste a un rang i