Arboles Scheme
(b () ())
(c
(d () ())
(e () ()))))
(define matriz?
(lambda (m)
(cond ((not (list? m)) #f)((andmap list? m) (todos-iguales? (length (car m)) (map length (cdr m))))
(else #f))))
(define todos-iguales?
(lambda (elem lista)
(cond ((null? lista) #t)
((eq?(car lista) elem)
(todos-iguales? elem (cdr lista)))
(else #f))))
(define matriz-cuadrada?
(lambda (m)
(cond ((matriz? m) (= (length m) (length (car m))))(else #f))))
(define diagonal
(lambda (mat)
(cond ((matriz-cuadrada? mat) (diagonal-aux mat))
(else #f))))
(define diagonal-aux
(lambda (mat)
(cond ((null? mat) '())(else (cons (caar mat) (diagonal-aux (cdr (map cdr mat))))))))
(define transpuesta
(lambda (m)
(cond ((matriz? m) (transpuesta-aux m))
(else #f))))
(definetranspuesta-aux
(lambda (mat)
(cond ((null? (car mat)) '())
(else (cons (map car mat) (transpuesta-aux (map cdr mat)))))))
(define prod-punto
(lambda (v1 v2)
(apply + (map (lambda(x y) (* x y)) v1 v2))))
(define preorden
(lambda (arbol)
(cond ((null? arbol) '())
(else
(cons (car arbol)
(append
(preorden(cadr arbol))
(preorden (caddr arbol))))))))
(define inorden
(lambda (arbol)
(cond ((null? arbol) '())
(else
(append
(inorden (cadrarbol))
(list (car arbol))
(inorden (caddr arbol))
)))))
;; postorden del arbol
(define postorden
(lambda (arbol)
(cond ((null? arbol) '())(else
(append
(postorden (cadr arbol))
(postorden (caddr arbol))
(list (car arbol)))))))
;;Altura del arbol
(define altura
(lambda (arbol)...
Regístrate para leer el documento completo.