Arboles Scheme

Páginas: 3 (582 palabras) Publicado: 30 de septiembre de 2012
(define tree '(a
(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)...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Scheme
  • Xml-schema
  • comandos scheme
  • Funciones en scheme
  • BEACON SCHEME
  • Pyramid schemes
  • Funciones Scheme
  • Dr Scheme

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS