Fonction qui renvoie la taille d'une liste

inteligence Messages postés 46 Statut Membre -  
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
Bonjour,
bonjour j'ai un petit problemme concernant les structures de donnees specialement les listes chainees:
voici l'algorithme suivant:
#include<stdio.h>
#include<stdlib.h>
typedef struct maillon cellule;
struct maillon
{
int valeure;
struct maillon *suivant;
}
void main()
{
cellule *L=NULL;
l=(cellule*)malloc(sizeof(cellule));
scanf("%d",&L->valeure);
L->suivant=NULL;
}
voici la fonction qui renvoie la taile de la liste

int TAILLE(cellule*L)
{
cellule *pc;
pc=L;
int n=0;
while(pc)
{
n++;
pc=pc->valeure;
}
}
le problemme ici c'est au sujet de la fontion qui envoie la taille de la liste ,je n'ai pas compris comment sa fonctionne la boucle plus precisement (pc=pc->suivant) et comment on peut passe d'une cellule a une autre ?
explique moi s'il vous plait ?
merci d'avence.
A voir également:

2 réponses

dubcek Messages postés 19021 Statut Contributeur 5 640
 
chaque cellule contient l'adresse de la cellule suivante (struct maillon *suivant) un peu comme des personnes qui se donnent la main.
la chaine se termine quand l'adresse est à zéro (NULL) : while(pc) dès que pc == NULL, le compteur s'arrête.
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

le problemme ici c'est au sujet de la fontion qui envoie la taille de la liste
tu n'as pas besoin d'une fonction pour faire ça

Il faut tout simplement utiliser une variable et à chaque opération d'insertion ou suppression tu l'as incremente ou decremente
Ca pourra peut être t'aider liste simplement chainee
0