un arbre n-aire est mémorisé de la façon suivante:Nombre de niveaux dans un arbre en LISP
(node (list-subtree-1) (list-subtree-2) ...)
A titre d'exemple, l'arbre
A
/\
B C
/\
D E
est représentée comme suit: (a (B) (C (D) (E)))
Retourner le nombre de niveaux d'un arbre
le problème est que je Je suis seulement autorisé à utiliser les fonctions suivantes: null, voiture, cdr, égal, atome, nombre, contre, cadr, cadr, fonctions cond et arithmétique. Quelqu'un pourrait-il me donner une fonction pour retourner les niveaux de ce genre d'arbre?
Je devais aussi revenir au niveau d'un certain nœud donné, et je l'ai fait comme ceci: (defun lvl (noeud lk) (cond ((null l) 1) ((égal (voiture l) nœud) k) (t (* (nœud lvl (cadr l) (+ k 1)) (nœud lvl (caddr l) (+ k 1)))) ) cela fonctionne, mais je ne peux pas modifiez-le pour retourner le nombre de niveaux de l'arbre ...) –
Est-ce que ce travail est fait? – Flinkman
partie d'un projet pour l'université –