Pues como prometí postear todo código que programara en IA, les dejo el primero. Sirve para convertir de inorden a preorden.
(set 'OP '
(
(* 2)
(/ 2)
(+ 1)
(- 1)
)
)
(define (ordenaPreorden IN)
(INPRE IN '() '()))
(define (INPRE IN PRE PILA)
(cond
((or (empty? IN) (= nil IN) (not (list? IN)))
(append (reverse PILA) PRE)
)
(true (set 'ULTIMO (last IN))
(begin
(cond
((list? (last IN))
(set 'PRE (append (INPRE (last IN) '() ' ()) PRE))
)
( (integer? ULTIMO)
(set 'PRE (cons ULTIMO PRE))
)
(true
( begin
(set 'IN_OP (HAYOPERADOR (assoc ULTIMO OP)))
(set 'OP_PILA (HAYOPERADOR (assoc (first PILA) OP)))
(cond
((<= IN_OP OP_PILA)
(set 'TOPPILA (first PILA))
(set 'PILA (rest PILA))
(set 'PRE (cons TOPPILA PRE))
)
)
(set 'PILA (cons ULTIMO PILA))
)
)
)
(INPRE (QUITARULTIMO IN) PRE PILA)
)
)
)
)
(define (QUITARULTIMO LISTA)
(reverse (rest (reverse LISTA)))
)
(define (HAYOPERADOR OP)
(cond
((not (list? OP)) 0)
(true
(first (rest OP))
)
)
)
Lisp es un lenguaje muy loco, cuesta un poco agarrarle la onda. Ya que uno piensa en un problema y ya sabe como resolverlo de manera estructurada, pero con Lisp es otro paradigma.
yo se los explico
todo el codigo
solo mierdas publica o le entiendo nada de nada ademas java no compilaria eso…… byebye