Fonction qui renvoie la taille d'une liste

inteligence Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -  
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
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 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   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