Advertisement
cardel

Asesoria

Jul 18th, 2016
348
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 2.56 KB | None | 0 0
  1. ;;https://swebse29.univalle.edu.co/sra/
  2. ;;tree
  3. ;;empty
  4. ;;(symbol tree tree tree)
  5. (define-struct tree
  6.   (valor izquierda centro derecha))
  7.  
  8.  
  9. ;tree-x
  10. ;empty
  11. ;(X tree-x tree-x tree-x)
  12. (define-struct tree-x
  13.   (valor izquierda centro derecho)
  14.   )
  15.  
  16. (define (contar tree-x)
  17.   (cond
  18.     [(empty? tree-x) 0]
  19.     [else
  20.      (+
  21.       1
  22.       (contar (tree-x-izquierda tree-x))
  23.       (contar (tree-x-centro tree-x))
  24.       (contar (tree-x-derecho tree-x))
  25.       )
  26.      ]
  27.     )
  28.   )
  29. (define (contar-simbolos tree-x)
  30.   (cond
  31.     [(empty? tree-x) 0]
  32.     [else
  33.      (+
  34.       (cond
  35.        [(symbol? (tree-x-valor tree-x)) 1]
  36.        [else 0]
  37.        )
  38.       (contar-simbolos (tree-x-izquierda tree-x))
  39.       (contar-simbolos (tree-x-centro tree-x))
  40.       (contar-simbolos (tree-x-derecho tree-x))
  41.       )
  42.      ]
  43.     )
  44.   )
  45.  
  46.  
  47. (define (aplanar tree-x)
  48.   (cond
  49.     [(empty? tree-x) empty]
  50.     [else
  51.      (cons
  52.       (tree-x-valor tree-x)
  53.       (append
  54.        (aplanar (tree-x-izquierda tree-x))
  55.        (aplanar (tree-x-centro tree-x))
  56.        (aplanar (tree-x-derecho tree-x))
  57.        )
  58.       )
  59.      ]
  60.     )
  61.   )
  62.  
  63. (define (contiene-simbolo? tree-x sym)
  64.   (cond
  65.     [(empty? tree-x) #f]
  66.     [else
  67.      (or
  68.       (cond
  69.         [(symbol? (tree-x-valor tree-x))
  70.          (eq? (tree-x-valor tree-x) sym)]
  71.         [else #f]
  72.         )    
  73.        (contiene-simbolo? (tree-x-izquierda tree-x) sym)
  74.        (contiene-simbolo? (tree-x-centro tree-x) sym)
  75.        (contiene-simbolo? (tree-x-derecho tree-x) sym)
  76.       )
  77.      ]
  78.     )
  79.   )
  80.  
  81. (define (mapeo procedimiento tree-X)
  82.   (cond
  83.     [(empty? tree-X) empty]
  84.     [else
  85.      (make-tree-x
  86.       (procedimiento (tree-x-valor tree-X))
  87.       (mapeo procedimiento (tree-x-izquierda tree-X))
  88.       (mapeo procedimiento (tree-x-centro tree-X))
  89.       (mapeo procedimiento (tree-x-derecho tree-X))
  90.       )
  91.      ]
  92.     )
  93.   )
  94.  
  95. (define arbol1 empty)
  96. (define arbol2
  97.   (make-tree-x
  98.    'a
  99.    (make-tree-x 'b empty empty (make-tree-x 2 empty empty empty))
  100.   empty
  101.    (make-tree-x #t empty empty empty))
  102.   )
  103.  
  104. (define arbolSimbolo
  105.   (make-tree-x
  106.    'a
  107.    (make-tree-x 'b empty empty (make-tree-x 'a empty empty empty))
  108.   empty
  109.    (make-tree-x 't empty empty empty))
  110.   )
  111.  
  112. ;;Contar en arbol n-ario
  113. (define (contar-nario tree)
  114.   (cond
  115.     [(empty? tree) 0]
  116.     [else
  117.      (+
  118.       1
  119.       (contar-aux (arbol-nario-lista-hijos tree))
  120.       )
  121.      ]
  122.     )
  123.   )
  124.  
  125. (define (contar-aux lista)
  126.   (cond
  127.     [(empty? lista) 0]
  128.     [else
  129.      (+ (contar-nario (car lista)) (contar-aux (cdr lista)))
  130.      ]
  131.     )
  132.   )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement