Arbre binaire

Fermé
G-Boy - 18 nov. 2004 à 14:56
maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 - 18 nov. 2004 à 15:15
Bonjour tt le monde,
est-ce que qqn peux m'aider à comprendre cette algorithme svp?


#include <stdio.h>

void tree (int n)
{
	if (n>1)
	{
		printf ("Left\n");
		tree (n-1);
		printf ("Up\n");	
		printf ("Right\n");
		tree (n-1);
		printf ("Up2\n");	
	}	
}

void main (void)
{
	int n;
	
	tree (3);
}




Pkoi kan jexecute ce code j'obtient sa :

Left
Left
Up
Right
Up2
Up
Right
Left
Up
Right
Up2
Up2

merci pour votre aide.

1 réponse

maily Messages postés 7556 Date d'inscription lundi 26 juin 2000 Statut Contributeur Dernière intervention 23 juin 2023 453
18 nov. 2004 à 15:15
Bonjour!!

Il suffit de faire l'éxecution de ta fonction!

alors

tree(3)
-> affiche left
->tree(3-1) --> ça appelle la fonction tree (2)
                          -> affiche left
                           -> tree (2-1)  -->ça appelle la fonction tree (1)
                                               -> 1 n'est pas supérieur à 1, donc, ça ne fait rien et ça revient à la fonction d'avant
                           ->affiche up
                           ->affiche right
                           -> tree (2-1)   -->ça appelle la fonction tree (1)
                                          -> 1 n'est pas supérieur à 1, donc, ça ne fait rien et ça revient à la fonction d'avant
...



et ainsi de suite... Tu vois mieux???
Maily :-))))
Boumj'chtattrape
0