Professional Documents
Culture Documents
Objetivo
Implementar la estructura de rboles B y rboles Rojo Negro, utilizando C#.
Introduccin
Un rbol rojo negro es un tipo abstracto de datos, concretamente es un rbol binario de bsqueda equilibrado, una estructura de datos utilizada en informtica y ciencias de la computacin. Puede buscar, insertar y borrar en un tiempo O(log n), donde n es el nmero de elementos del rbol. En los rboles rojo-negro las hojas no son relevantes y no contienen datos. A la hora de implementarlo en un lenguaje de programacin, para ahorrar memoria, un nico nodo (nodo-centinela) hace de nodo hoja para todas las ramas. As, todas las referencias de los nodos internos a las hojas van a parar al nodo centinela. En los rboles rojo-negros, como en todos los rboles binarios de bsqueda, es posible moverse ordenadamente a travs de los elementos de forma eficiente si hay forma de localizar el padre de cualquier nodo. El tiempo de desplazarse desde la raz hasta una hoja a travs de un rbol equilibrado que tiene la mnima altura posible es de O(log n). Propiedades: Un rbol rojo-negro es un rbol binario de bsqueda en el que cada nodo tiene un atributo de color cuyo valor es o bien rojo o bien negro. Adems de los requisitos impuestos a los rboles binarios de bsqueda convencionales, se deben satisfacer los siguientes para tener un rbol rojo-negro vlido: 1. 2. 3. 4. Todo nodo es o bien rojo o bien negro. La raz es negra. Todas las hojas son negras (las hojas son los hijos nulos). Los hijos de todo nodo rojo son negros (tambin llamada "Propiedad del rojo").
Programacin III, Gua 8 2 5. Cada camino simple desde un nodo a una hoja descendiente contiene el mismo nmero de nodos negros, ya sea contando siempre los nodos negros nulos, o bien no contndolos nunca (el resultado es equivalente). Tambin es llamada "Propiedad del camino", y al nmero de nodos negros de cada camino, que es constante para todos los caminos, se le denomina "Altura negra del rbol", y por tanto el camino no puede tener dos rojos seguidos. 6. El camino ms largo desde la raz hasta una hoja no es ms largo que 2 veces el camino ms corto desde la raz del rbol a una hoja en dicho rbol. El resultado es que dicho rbol est aproximadamente equilibrado.
Materiales y equipo
Gua de Laboratorio N 8. Computadora con programa: o Visual Studio 2005. C# Dispositivo de Almacenamiento (USB).
Procedimiento
1. Cree un proyecto modo consola en Visual C# .NET y nmbrelo como BinarySearchTree.cs
using System; using System.Collections.Generic; using System.Text; namespace BinaryTree { public class Node { public String data; public Object key;
public Node Search(Node node, Object key) { if (node == null) return null; else { int result = String.Compare(key.ToString(), node.key.ToString()); if (result < 0) return Search(node.left, key); else if (result > 0) return Search(node.right, key); else return node; } } } }
Anlisis de resultados
Analice el cdigo proporcionado en Program.cs y explique su funcionamiento. _______________________________________________________________ _______________________________________________________________ _______________________________________________________________
Hacer un men que permita insertar n valores (automtico o manual) y que adems me permita realizar bsquedas mediante el rbol rojo negro o mediante el rbol de bsqueda y que imprima el tiempo de ejecucin.
Investigacin complementaria.
Investigue el funcionamiento de los arboles B (B- Trees). Qu diferencias y similitudes tienen con los otros rboles desarrollados
Bibliografa.
DEITEL, HARVEY M. / DEITEL, PAUL J. Cmo programar en C#. Editorial Pearson Prentice Hall, Mxico 2004 JOYANES AGUILAR, LUIS. Programacin en C# - Algoritmos, estructuras de datos y objetos. Editorial McGraw Hill, Espaa 2006.
11
Hoja de cotejo:
Docente:
6 1
Alumno:
Alumno:
Docente:
Docente:
Fecha:
CONOCIMIENTO
40
40
ACTITUD
20
TOTAL 100%