WARNING:
JavaScript is turned OFF. None of the links on this concept map will
work until it is reactivated.
If you need help turning JavaScript On, click here.
Este Cmap, tiene información relacionada con: 8.5 - Abstracción de datos, Capítulo 5 - Abstracción de datos 5.10. Recursividad - Las funciones recursivas generan procesos recursivos o procesos iterativos (también llamados procesos con tail recursión) generando datos a almacenar en la pila, o llamadas en espera., Capítulo 5 - Abstracción de datos 5.9. Arboles genéricos - square-tree: esta función devuelve el árbol resultante a aplicar la función square a los números del árbol que se pasa como parámetro., Capítulo 5 - Abstracción de datos 5.6. Datos jerárquicos: listas jerárquicas En todos los lenguajes de programación, las listas tienen la propiedad de la clausura y a su vez pueden contener otras listas. Una lista jerárquica es una lista cuyos elementos son datos atómicos u otras listas jerárquicas. Por ejemplo, supongamos la siguiente lista: ( (1 2 3) 4 5), Capítulo 5 - Abstracción de datos 5.5. Diagramas box-and-pointer ¿Cómo se puede dibujar un diagrama para una lista compleja? Tomemos este ejemplo ' ( (a b) c (d (e f) ) ) Para esto debemos preguntarnos cuantos elementos tiene la lista. En este caso tiene tres elementos: primero (a b), luego c, y luego el resto. Por eso se dibuja una lista inicial con tres parejas, Capítulo 5 - Abstracción de datos 5.7. Uso de las funciones de listas jerárquicas - levels-pt: esta función retorna el número de niveles de la lista pasada como argumento., Capítulo 5 - Abstracción de datos 5.9. Arboles genéricos - map-tree: esta función permite generalizar la función square-tree y permite aplicar una función cualquiera de argumento a todos los datos del árbol inicial, devolviendo el árbol resultante., Capítulo 5 - Abstracción de datos 5.1. Parejas de Scheme Muchos lenguajes de programación proporcionan la idea de un array en el que poder almacenar un número de elementos. En Scheme la forma mas sencilla de acumulación es la pareja (pair)., Capítulo 5 - Abstracción de datos 5.10. Recursividad - Todos los procedimientos que genera un proceso recursivo puede reescribirse para que genere un proceso iterativo, aunque el programa resultante es muchas veces más complejo y difícil de interpretar., Capítulo 5 - Abstracción de datos 5.2. La agregación de datos no tiene por que ser primitiva Casi la mayoría de lenguajes de programación tienen como parte fundamental el mecanismo de agregación de datos (el array u otros mecanismos parecidos). Sin embargo, en Scheme este mecanismo es otro más que puede implementarse como un usuario simple del lenguaje., Capítulo 5 - Abstracción de datos 5.3. Abstracción de datos y barrera de abstracción Se debe usar la abstracción para crear tipos de datos. Un tipo de dato cumple dos funciones: Acerca el programa al dominio que estamos programando. Oculta la implementación con una barrera de abstracción., Capítulo 5 - Abstracción de datos 5.4. Tipo abstracto de datos secuencia (o lista) - (list obj ...): nos permite crear una lista con un número variable de datos recibidos como argumentos. - (list-ref list k): nos devuelve el elemento k de la lista list (iniciando la cuenta en 0)., Capítulo 5 - Abstracción de datos 5.6. Datos jerárquicos: listas jerárquicas - (leaf? dato): indica si un dato de una lista jerárquica es una hoja o no. - (count-leaves-pt lista): devuelve el número de elementos atómicos de la estructura lista. - (levels-pt lista): cuenta el número de niveles que contiene la lista jerárquica lista. - (member-pt? dato lista): nos indica si el dato es un dato atómico que pertenece a la lista jerárquica lista. - (map-pt f lista): esta función devuelve una nueva lista jerárquica con la misma estructura que lista con los datos resultantes de aplicar f a los datos originales de lista., Capítulo 5 - Abstracción de datos 5.7. Uso de las funciones de listas jerárquicas - map-pt: es una generalización de la función anterior, ya que permite pasar como argumento la función que se aplica a los datos de la lista., Capítulo 5 - Abstracción de datos 5.8. Árboles binario - (make-btree dato izq der): nos permite construir un árbol binario a partir de un dato y otros dos árboles binarios. - empty-btree: permítela definición de un árbol binario vacío., Capítulo 5 - Abstracción de datos 5.3. Abstracción de datos y barrera de abstracción Cuando se maneja un tipo d datos particular, se debe referir a ellos en términos de su significado, y no en términos de como se presentan en el computador (ordenador)., Capítulo 5 - Abstracción de datos 5.10. Recursividad - Los procesos iterativos no dejan llamadas en espera, son más eficientes que los recursivos en cuanto que las llamadas en espera ocupan espacio de memoria (la pila de la recursión). Se utilizan como alternativa a los buclesque no tienen implementación en lenguajes funcionales., Capítulo 5 - Abstracción de datos 5.1. Parejas de Scheme (define p1 (cons 2 . 0 3 . 0) ) (define p2 (cons 0 . 0 0 . 0) ) (define s1 (cons p1 p2) ), Capítulo 5 - Abstracción de datos 5.7. Uso de las funciones de listas jerárquicas - member-pet: permite construir una nueva lista jerárquica con los elementos pasados como parámetro elevados al cuadrado., Capítulo 5 - Abstracción de datos 5.7. Uso de las funciones de listas jerárquicas - count-leaves-pt: esta función permite recorrer todos los niveles de la lista jerárquica y devolver el número de elementos atómicos que contiene., Capítulo 5 - Abstracción de datos 5.7. Uso de las funciones de listas jerárquicas - member-pt: esta función nos permite recorrer el pseudo árbol y comprobar si alguno de sus datos coincide con el argumento que le pasamos.