Hello,
je m'arrache les cheveux en voulant implanter un arbre sous DrRacket.....
je voudrais implanter un arbre avec 3 branches à chaque nœud, par exemple (#f (#f (#f #v #f) #f) #f)
je voudrait une fonction à qui l'on donne un chemin et elle placera #true au bonne emplacement et en complétant automatiquement avec des #false si l'arbre n'est pas assez long...... .....compliqué tout ça
J'ai essayé quelque chose comme ça (sans succès):
Je ne sais pas s'il vaut mieux utiliser des listes ou des vecteurs pour l'arbre ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #lang racket (define arbre (vector 2 3 9)) (define (arbre-set! chemin) (define (R n) (set! chemin (cdr chemin)) (print (list chemin n)) (if (vector-ref n (car chemin)) (R (vector-ref n (car chemin))) n)) (set! chemin (cons #f chemin)) (vector-set! (R arbre) (car chemin) (let loop ((l (cdr chemin))) (if (null? l) #t (vector-set! (make-vector 3 #f) (car l) (loop (cdr l))))))) (arbre-set! '(1 2 1)) (print arbre)
Partager