Arboles Binarios Ordenados

Les acercamos el enlace de abajo para un simulador de manejo de diferentes tipos de arboles binarios de búsqueda.

Acceso al simulador

Este simulador presenta diferentes tipos de arboles. Para el trabajo en la cátedra deben utilizar el primer tipo de árbol que aparece en la primera solapa y se llama BST (Binary Search Tree)

Para visualizarlo deben tener instalado el plugin de java y actualizado.

Su utilización es muy sencilla, en la parte de abajo de la pantalla se encuentra el panel de control. Tienen un espacio donde pueden colocar los elementos para el árbol. Una vez colocado el valor presionan Insert (agregar/insertar) y crea un nodo. Luego con next (Siguiente) termina de ejecutar la operación.

Prueben de crear un arbol, y luego buscar (Find) un elemento o borrar un elemento (Delete) . Todos siguen la misma lógica. Agregan un valor seleccionan una opción y luego apretan next. Observen en la pantalla principal (display) lo que va ocurriendo.

Con la tecla Clear , limpian la pantalla y con Random generan un arbol al azar. Abajo de los botones observen que tienen datos de las estadísticas de los árboles: tamaño (size), peso (height) y profundidad promedio (deep average). Pregunta: ¿que representan estos datos estadísticos?

Actividad de listas Año 2012

A continuación dejamos algunas de las actividades realizadas en el curso y las propuestas de solución que realizaron los alumnos.

En esta oportunidad vamos a trabajar con el concepto de lista circular doblemente enlazada:

En una lista circular doblemente enlazada, cada nodo tiene dos enlaces, similares a los de la lista doblemente enlazada, excepto que el enlace anterior del primer nodo apunta al último y el enlace siguiente del último nodo, apunta al primero. Como en una lista doblemente enlazada, las inserciones y eliminaciones pueden ser hechas desde cualquier punto con acceso a algún nodo cercano. Aunque estructuralmente una lista circular doblemente enlazada no tiene ni principio ni fin, un puntero de acceso externo puede establecer el nodo apuntado que está en la cabeza o al nodo cola, y así mantener el orden tan bien como en una lista doblemente enlazada.

 

 

PROBLEMA 1

1. Realizar un programa que:
a. Genere una lista doblemente enlazada circular donde cada nodo contiene un número entero.
b. Realizar un modulo que dada una lista doblemente enlazada circular y un valor n >0, debe recorrer la lista y obtener en cada pasada el cociente de la división del valor del nodo por el número n (el divisor). Por ejemplo si el nodo tiene el valor 35 y hay que dividir por 5, lo que queda en el nodo es 7.
El recorrido se termina cuando todos los nodos de la lista circular presentan en su contenido un valor donde el resto de la división es igual al valor del dividendo.

Descargar la solución: ListaCircularDobleG8 realizada en Septiembre de 2012 por los alumnos Ailan Julian,  Colazo Exequiel y Crudele Emilio.

 

PROBLEMA 2

Realizar un programa que:
a. Genere una lista doblemente enlazada circular. Cada nodo contiene un número entero.
b. Realizar un modulo que dada una lista doblemente enlazada circular y un valor n >0, debe recorrer la lista y modificar el valor de cada nodo con el valor actual del nodo elevado a la potencia n. En cada pasada el valor de n se decrementa en uno. El recorrido se detiene cuando n es menor o igual a 1.

Descargar la solución ListaCircularG13Potencias realizada en Septiembre de 2012 por los alumnos: : Alza Juan Mateo;  Basanta Sofia;   Blanco Regojo Mauricio; Evangelista y Mauro Ariel

Les dejamos también otra solución ListaCircularG11Potencias realizada por otro grupo al mismo problema en septiembre 2012. Los alumnos son: Bob Mauro David, Discoli Tomás, Garcia  Manuel, Garcia Morzone, Isidro Sergio, Santarcángelo, Zazzetta Marco