Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2833 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Calcul longueur d'une liste à liens multiples

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Calcul longueur d'une liste à liens multiples

n°1875513
pooky13
Posté le 20-04-2009 à 19:07:30  profilanswer
 

Bonjour !
 
Voila mon problème :
 
voilà la struct :

Code :
  1. typedef struct quad {
  2.                        struct quad *suiv, *multiple;
  3.                         } Tcoup;


 
Ma question : comment faire pour calculer la longueur d'un coup ? (fonction recursive : int longueur_coup(Tcoup cp, int i) )
 
Exemple d'un coup : ---> represente les liens suiv   et | represente les liens multiples
#---->#---->#
|
#---->#
|        |                    => ce coup est de longueur 4 !
#       #---->#
                  |
                  #---->#
 
Merci a tous !


Message édité par pooky13 le 20-04-2009 à 19:16:08
mood
Publicité
Posté le 20-04-2009 à 19:07:30  profilanswer
 

n°1875523
Joel F
Real men use unique_ptr
Posté le 20-04-2009 à 19:23:29  profilanswer
 

pour chaque coup, tu ajoute 1 au max de la longueur des coup multiples fils.


Message édité par Joel F le 20-04-2009 à 19:23:34
n°1875525
pooky13
Posté le 20-04-2009 à 19:26:07  profilanswer
 

En fait je ne vois pas trés bien les conditions d'arret de cette fonction ..

n°1875530
Taz
bisounours-codeur
Posté le 20-04-2009 à 19:38:08  profilanswer
 

bah pointeur nul

n°1875811
pooky13
Posté le 21-04-2009 à 12:46:51  profilanswer
 

Voilà ce que j'ai testé mais cela ne marche pas :
 

Code :
  1. typedef Tcoup *Tliste;
  2. int longueur_coup(Tcoup cp, int i)
  3. {
  4.    Tliste lect=&cp;
  5.     int a=0;
  6.     int max=0;
  7.  
  8.     if(i==0) { lect=lect->multiple; i=i+1;}
  9.     if((lect->suiv==NULL)&&(lect->multiple==NULL)) { return 0; }
  10.     if(lect->multiple==NULL) {   lect=lect->suiv;}
  11.     while(lect!=NULL)
  12.     {
  13.         if(lect->multiple!=NULL)
  14.             a=i+l_coup(*lect->multiple,i+1);
  15.         else
  16.             a=a+i;
  17.         if(a>max) max=a;
  18.         lect=lect->suiv;
  19.     }
  20.     return max;
  21. }



=> Qu'en pensez-vous ??

=> Si vous pouviez m'aider, ...  :)  Merci d'avance!!


Message édité par pooky13 le 21-04-2009 à 12:48:31
n°1875951
Taz
bisounours-codeur
Posté le 21-04-2009 à 17:40:49  profilanswer
 

Sors ton débugger ...
 
et si lect est nul, t'es bien avancé.

n°1876082
Olivier51
Posté le 22-04-2009 à 01:12:44  profilanswer
 

C'est une question de cours ?
La fonction est bien longeur_coup(TCoup,int) et non longeur_coup(TCoup*,int) ?
Sinon ta fonction proposée n'est pas récursive...
 
 
- La condition d'arret pas de fils. Comme l'a proposé Joel, tu incrémentes à chaque fois qu'un "multiple" n'est pas nul. Une fois que tu atteints la condition multiple==NULL, tu retournes 1. Le noeud retournera la valeur la plus grande de chaque branche. J'en dis pas plus; à toi d'implémenter cet algorithme.
 
- Dans ton programme, tu supposes qu'un cp pour i==0 à toujours un lect->multiple (non nul). Faux

n°1876150
pooky13
Posté le 22-04-2009 à 10:27:55  profilanswer
 

              Ok merci pour vos conseils je vais revoir tout ça !

 

              ... Non non ce n'est pas une question de cours ...c'est pour un projet perso

 

                                         Thanks !


Message édité par pooky13 le 22-04-2009 à 10:28:52
n°1876232
pooky13
Posté le 22-04-2009 à 12:10:54  profilanswer
 

Je crois que j'ai trouvé ! merci à tous !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Calcul longueur d'une liste à liens multiples

 

Sujets relatifs
Recherche rapide de listeliste déroulante(option par défaut)
Inserer feuille de calcul dans sujet d'un forumOrdonner un calcul de requetes SQL
[Résolu] Ajax, XMLhttpRequest, interrogation multiples et simultannéesCalcul du hash d'une table automatisé en SQL
encodage liste csvCalcul des extrémas d'une série de N nombres
liste d'objets remplie manuellementConstruire une liste à l'arache
Plus de sujets relatifs à : Calcul longueur d'une liste à liens multiples


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR