Jump to content

info profondeur noeuds


Ilyatrogène
Go to solution Solved by Shrex,

Recommended Posts

Salut, 

Qqun aurait-il la grande amabilité de m'expliquer ce que font concrètement les lignes 8, 16 et 17 et pourquoi était-il nécessaire de rajouter int aux lignes 14 et 15 ? 

https://goopics.net/i/oZPZn

Merci d'avance : )

Edited by Ilyana31
Link to comment
Share on other sites

Il y a 14 heures, Ilyana31 a dit :

pourquoi était-il nécessaire de rajouter int aux lignes 14 et 15 ? 

Avant de répondre : est-ce que tu as mis la bonne image car y a pas de int aux lignes 14 et 15... (ou alors tu as mis le programme 2* au lieu de 3* ???)

Dsl si c'est moi qui fume...

Edited by Shrex
Link to comment
Share on other sites

il y a 16 minutes, DuTACKauTac a dit :

 

J'ai pas encore attaqué la S9 désolé 😞

Tkt merci quand même

 

il y a 26 minutes, Shrex a dit :

Avant de répondre : est-ce que tu as mis la bonne image car y a pas de int aux lignes 14 et 15... (ou alors tu as mis le programme 2* au lieu de 3* ???)

Dsl si c'est moi qui fume...

Oulaaaa oui pardon j'ai pas mis le bon programme dsl je rectifie ça !

Link to comment
Share on other sites

  • Solution

@Ilyana31 Bon, je maitrise pas le truc de ouf mais je vais essayer, par contre je me rends compte en fin de rédac que j'ai énormément de mal à poser les explications à l'écrit donc désolé si c'est bordélique, parce que ça l'est (c'est encore plus hard à expliquer que la récursivité) :

 

Déjà, parents est une liste de valeurs : [0,0,0,0,0,0,0,0,0], et l’indice dans la liste correspond à l’enfant, et le chiffre marqué à cet indice au parent, exemple : si tu vas chercher à l’indice 3 et qu’il y a marqué 2, ça veut dire que le nœud 3 (enfant) est branché sur le nœud 2 (parent).

 

Pour ce qui est du int, tu dois le faire car tu vas te servir, par exemple, de enfant pour fouiller dans la liste parents , et si tu convertis pas enfant en int tu vas vouloir fouiller dans parents mais avec un string en indice, et ça marchera pas parce que c’est pas comme ça que ça fonctionne (tu vas lui demander la valeur à l’indice "3", mais 3 en tant que caractère et non en tant que chiffre, et ça c’est de la merde ça marchera pas)

 

Pour la ligne 16, tu vas mettre dans la liste parents à l’indice enfant le chiffre qui correspond à son parent (réfères-toi à l'explication du 1er paragraphe)

 

Pour la ligne 17, tu appelles ta fonction (que je vais t’expliquer mais avec un exemple qui refait une étape du programme entier parce que j’avais tenté un pavé de texte et c’était encore plus indigeste que ce que tu vas lire...) :

 

Imagine ta liste elle est comme ça : [0,0,1,0,0,0,0,0,0], ta ligne que t'as input c’est "3 2", donc en faisant le split tu obtiens enfant = 3 et parent = 2, donc dans la liste à l’indice 3 (enfant) tu écris 2 (parent), en se rappelant que la liste est numérotée de 0 à 8 : [0,0,1,2,0,0,0,0,0]

 

Une fois comme ça tu appelles la fonction calculeProfondeur(3) : du coup nœud = 3 donc différent de 0, tu rappelles la fonction avec parents[3], et quand tu regardes la liste à l'indice 3 c'est 2 (le parent que tu avais noté), c’est encore différent de 0 donc tu rappelles ta fonction avec parents[2] et c’est 1 (ça veut dire que 2 est branché sur 1), encore différent de 0, tu rappelles avec parents[1] et là c’est 0, ça veut dire que 1 n’est branché sur aucun nœud, donc c’est égal à 0, donc tu renvoies 0 et tu remontes le programme qui à ce niveau est ainsi :

=> calculeProfondeur(3)

=> calculeProfondeur(2) + 1

=> calculeProfondeur(1) + 1 + 1

=> calculeProfondeur(0) + 1 + 1 + 1 donc la profondeur du nœud est 3, sur le schéma en dessous je t'ai fait le début de l'arbre avec : en noir les noeuds, la flèche part du parent pour aller vers l'enfant, et en rouge t'as la profondeur

rwv4.png

 

J'espère que c'est pas trop horrible à comprendre mais j'ai essayé de poser le truc avec des mots et c'est pas simple... 

Est-ce que TACKompris ?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...