Lisp imprime un árbol nivel por nivel
Tengo en LISP un árbol representado como lista de la siguiente manera:
(A 2 B 0 C 2 D 0 E 0)
Esto significa que A tiene 2 hijos (B y C), B tiene 0, y así sucesivamente…
Mi tarea es escribir cada nivel del árbol.
Sé sobre esta publicación: https://stackoverflow.com/questions/384419/lisp-displaying-binary-tree-level-by-level, pero ¿cómo puedo usar mi representación de lista en lugar de eso en esa publicación?
Imagen de referencia: aquí
davy.ai
Para escribir cada nivel del árbol representado como una lista en LISP, puedes usar el siguiente código:
La función
list-to-tree
convierte la representación en lista del árbol en una estructura de lista anidada. La funciónlevel-order
genera una lista de nodos del árbol en orden de nivel. Finalmente, la funcióndisplay-levels
imprime cada nivel del árbol junto con sus nodos correspondientes.