APTC102
Entregable: Árboles Binarios Ordenados
Semana 8: Evaluación Sumativa Grupal
Identificación de los Estudiantes Fecha: _____________________
Nombre
Aprendizaje esperado
1. Aplicar las estructuras de datos grafo y árbol y sus algoritmos asociados, para el modelamiento y resolución de
problemas.
z
Indicadores de logro
1. Emplean las estructuras de datos adecuadas para resolver problemas computacionales modelados mediante
grafos y árboles.
2. Utilizan los algoritmos asociados a grafos y árboles para tomar decisiones que permitan resolver un problema
computacional.
Desafíos de la Unidad
1. Resolver un problema computacional utilizando las estructuras de datos que representan grafos y árboles.
Instrucciones generales
1. Lee con atención la experiencia de aprendizaje situado y la rúbrica correspondiente.
2. Lee comprensivamente los recursos de aprendizaje considerados en la semana.
3. De manera grupal debe desarrollar un algoritmo que soluciona un problema mediante el uso de la estructura de
datos recursiva árbol binario ordenado.
4. Te recordamos que contarás con la posibilidad de plantear tus consultas respecto de los contenidos tratados, en el
foro “consultas al profesor”, que estará abierto durante toda la semana.
5. Esta es una instancia de evaluación sumativa, con calificación, ponderando un 15% de tu nota de
presentación al examen.
z
Instrucciones específicas
1. La actividad se desarrolla en el lenguaje de programación Python.
2. construir una serie de funciones que permitan a la biblioteca manejar la información de forma eficiente
3. Puede utilizar la función de ejemplo que encontrarás al final de la actividad.
Aspectos formales
1. Debes entregar un archivo en formato Python, es decir, con extensión .py
2. El nombre del archivo se debe ajustar al siguiente ejemplo:
apellido1_apellido2_nombre_entregable2.py
3. Esta actividad sumativa es grupal, con cantidad máxima de tres integrantes.
4. Solamente uno de los integrantes debe realizar la entrega del programa.
Completa la actividad y luego envíala en el buzón de entrega correspondiente, para esto:
a) Dirígete a la sección entrega de actividad
b) Pincha: “Examinar mi equipo”
c) Adjunta el archivo con tu actividad
Tienes plazo hasta las 23:59 h. del domingo de esta semana.
z
Actividad
Una biblioteca necesita mantener la información de sus libros organizada de tal manera que el acceso a los datos de estos
sea más eficiente que un orden lineal, sin recorrer todos los datos al momento de insertar, buscar o eliminar algún libro.
Para esto requiere almacenar la información en una estructura de datos árbol binario ordenado, donde el orden se
mantiene según el ID del libro (además del ID, cada libro tiene su nombre, autor y año).
En el archivo “libros.csv” usted cuenta con información sobre algunos libros de la biblioteca.
Suponga que existe una clase Libro, en donde tiene los atributos id, título, autor y año y los atributos izq y der, para
indicar el hijo izquierdo y derecho respectivamente. La clase se muestra a continuación:
La tarea consiste en construir una serie de funciones que permitan a la biblioteca manejar la información de forma
eficiente.
a) Construir la función Insertar (a,id, titulo, autor, año) que permita insertar un nuevo libro al árbol.
Por ejemplo, al insertar los siguientes datos:
[(123456, 'Don Quijote de La Mancha', 'Miguel de Cervantes', 1605), (119987, 'Historia de dos ciudades', 'Charles
Dickens', 1859), (287651, 'El Señor de los Anillos', 'J.R.R. Tolkien', 1954)]
z
El árbol resultante es:
123456
/ \
119987 287651
Si luego se inserta el siguiente libro:
(138754, 'Ella', 'H. Rider Haggard', 1887)
El árbol resultante es:
123456
/ \
119987 287651
/
138754
b) Construir la función Buscar(a,id) que permita retornar la información del libro con el identificador id. Debe retornar
False en caso de que el libro no se encuentra.
Por ejemplo, se busca el libro con id = 119987:
x = Buscar(a,119987)
Al imprimir la variable x se obtiene:
('Historia de dos ciudades', 'Charles Dickens', 1859)
z
Otro ejemplo, se busca el libro con id = 123455:
x = Buscar(a,123455)
Al imprimir la variable x se obtiene:
False
Puede utilizar la siguiente función que permite mostrar un árbol binario ordenado en preorden:
z
Tabla de especificaciones
Aprendizaje Indicador de logro R E A AN E C
Esperado Reconocer Entender Aplicar Analizar Evaluar Crear
Aplicar las Emplean las X X X
estructuras de estructuras de datos
datos grafo y adecuadas para
árbol y sus resolver problemas
algoritmos computacionales
asociados, para modelados mediante
el modelamiento grafos y árboles.
y resolución de
problemas. Utilizan los X X X
algoritmos asociados
a grafos y árboles
para tomar
decisiones que
permitan resolver un
problema
computacional.
z
Rúbrica de evaluación
NIVELES DE LOGRO
CRITERIOS DE
EXCELENTE BUENO ACEPTABLE INSUFICIENTE No cumple 0%
CALIDAD
100% 75% 50% 25%
Definición de la Define la función con Define la función con Define la función con Define la función con Define la función con
función Insertar. el nombre que un nombre que no el nombre que el nombre que un nombre que no
corresponde y con corresponde, y con corresponde pero corresponde y sin los corresponde y sin los
10% los parámetros que los parámetros con hasta 2 parámetros parámetros
se solicitan (a,id, solicitados (a,id, parámetros solicitados (a,id, solicitados (a,id,
titulo, autor, año) titulo, autor, año) incorrectos (a,id, titulo, autor, año) titulo, autor, año)
titulo, autor, año)
Verificación de Verifica que el árbol Verifica que el árbol Verifica que el árbol Verifica que el árbol No verifica que el
árbol vacío. está vacío y agrega está vacío y agrega está vacío, crea el está vacío, pero no árbol está vacío.
el libro como único el libro como único nuevo libro, pero no crea el nuevo libro.
lo agrega como
10% elemento del árbol. elemento del árbol,
único elemento del
pero no retorna el árbol.
árbol.
Inserta un nuevo Verifica que el id del Verifica que el id del Verifica que el id del No verifica el id del No verifica el id del
libro en un árbol libro es menor o libro es menor o libro es menor o nuevo libro y nuevo libro ni
no vacío. mayor al nodo mayor al nodo mayor al nodo solamente lo inserta. tampoco lo inserta.
actual. En caso de actual, y lo inserta actual, y lo inserta
30% ser menor, inserta el en cualquiera de las en cualquiera de las
nuevo libro en la dos ramas. Luego dos ramas, pero no
rama izquierda, en retorna el árbol. retorna el árbol.
caso de ser mayor lo
inserta en la rama
derecha. Finalmente
retorna el árbol.
Definición de la Define la función con Define la función con Define la función con Define la función con Define la función con
función Buscar. el nombre que un nombre que no el nombre que el nombre que un nombre que no
corresponde y con corresponde, y con corresponde pero corresponde y sin los corresponde y sin los
10% los parámetros que los parámetros solo con uno de los parámetros parámetros
se solicitan (a,id) solicitados (a,id)
z
parámetros solicitados (a,id, solicitados (a,id,
solicitados (a,id) titulo, autor, año) titulo, autor, año)
Verificación de Verifica que el árbol Verifica que el árbol Verifica que el árbol No verifica que el No verifica que el
árbol vacío. está vacío y retorna está vacío, pero está vacío, pero no árbol está vacío y árbol está vacío, ni
False. retorna un valor retorna False ni un solamente retorna retorna False.
10% distinto a False. valor distinto a un valor distinto a
False. False.
Busca un libro en Verifica que el id del Verifica que el id del Verifica que el id del Verifica que el id del No verifica que el id
un árbol no libro es igual al id del libro es igual al id del libro es igual al id del libro es igual al nodo del libro es igual al
vacío. nodo actual y nodo actual y nodo actual y actual, sin retornar nodo actual.
retorna la retorna la retorna la la información del
30% información del libro información del libro información del libro libro (título, autor y
(título, autor y año). (título, autor y año). (título, autor y año). año)
En caso contrario En caso contrario, En caso contrario, no
verifica que el id es verifica si el id es verifica si el id es
menor y retorna la mayor o menor que menor o mayor que
búsqueda del libro el nodo actual, sin el nodo actual.
en la rama izquierda, retornar la búsqueda
o en caso de ser del libro por la rama
mayor, retorna la derecha o izquierda
búsqueda del libro según corresponda.
en la rama derecha.