int walk_same(LLIST** ,void
*,int (*)(LLIST **,void *) )
int walk_sameD(LLIST** ,void
*,int (*)(void*) )
|
R1
walk_same( P1 , P2
, F3 ) |
|
R1
walk_sameD( P1 , P2
, F3 ) |
- Fonction qui parcours la liste P1 et déplace
le curseur sur chaque élément dont les clés sont identiques
aux clés de l'élément P2.
Pour chaque élément la fonction walk_same,walk_sameD appellent
la fonction F3 (tant que la fonction F3
retourne LOK , si F3 retourne LNOK ou LSTOP cela
provoque l'arrêt du parcours).La seule différence entre les 2
fonctions se situe dans les paramètres du pointeur de fonction F3.
-
- En entrée :
- P1 : Adresse d'un pointeur de liste.
- P2 : Adresse de l'élément à
rechercher.
- P3 : Adresse d'une fonction de type : int fct(LLIST
**).
- En sortie :
(Voir
codes retour)
- Si R1 < 0 : (Voir
codes retour).
- Si R1 >= 0 nombre d'itération.C'est
à dire ; nombre de fois que la fonction F2
retourne LOK.
- Si R1 =
LNOK ( liste vide => lgrl( P1
) = 0 ).
- Remarque :
- En principe R1 est égal au nombre d'élément
identique à P2 si F3
retourne toujours LOK.
- Permet de faire un traitement sur tout ou une partie des éléments
de la liste. Ou simplement de faire un trace des éléments
identiques.
- Si le curseur avait été positionné sur un élément
avant l'appel de la fonction celui restera au même endroit après
l'exécution du walk_xx.
- walk_sameD D comme
Data.
- Garantie:
- Un déplacement du curseur et l'appel de la fonction autant de fois
qu'il y a d'élément identiques à P2
dans la liste P1.
Voir aussi :
exemple
008