Fonction qui renvoie la taille d'une liste

Fermé
inteligence Messages postés 42 Date d'inscription mercredi 29 août 2007 Statut Membre Dernière intervention 10 septembre 2011 - 21 oct. 2007 à 22:06
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 22 oct. 2007 à 13:49
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 18757 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 19 décembre 2024 5 623
22 oct. 2007 à 13:39
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
22 oct. 2007 à 13:49
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