[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Recherche atypique!



On Thu, May 16, 2002 at 11:30:17AM +0200, Vincent wrote:
> Salut,
> 
> Où est-ce que je peux trouver l'algo de la commande tree (linux) ? En 
> fait ce n'est pas de la source en C dont j'ai besoin mais de l'idée 
> algoritmique qu'il y a derrière...
> Je suis sur que l'algo derrière ce procédé d'affichage des 
> dossier-sousdossier-fichier ne fait pas plus de 20 lignes...
> Mon but est de l'adapter en php pour une histoire d'arborescence de 
> réponses père-fils...un forum koi!

Je n'ai pas regardé le source de tree, mais si je devais coder ça, je le
ferai avec un bête parcours récursif de mon arborescence de répertoire.
Si c'est l'algo de parcours d'arbre que tu cherches, cherche "parcours
d'arbre en profondeur d'abord" dans n'importe quel bouquin
d'algorithmique. Et effectivement ça ne fait pas plus de 20 lignes. 
En python (pseudo code exécutable, comme chacun le sait), ça donne :

from os import listdir
from os.path import isdir, join 
def affiche_arbre(repertoire='.', prefix=''):
    sousrep = listdir(repertoire)
    for f in sousrep:
        if f is sousrep[-1]: 
	    # pour la dernière entrée du répertoire, on met un `
	    # plutôt qu'un |
	    print prefix + '`-- ' + f
	else:
            print prefix + '|-- ' + f
	fullname = join(repertoire,f)
	if isdir(fullname):
	    affiche_arbre(fullname,prefix+'|  ')

Alexandre Fayolle
-- 
LOGILAB, Paris (France).
http://www.logilab.com   http://www.logilab.fr  http://www.logilab.org
Narval, the first software agent available as free software (GPL).


-- 
To UNSUBSCRIBE, email to debian-user-french-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: