Professional Documents
Culture Documents
Un rbol: es una estructura no lineal y dinmica de datos. Dinmica: puede cambiar durante la ejecucin de un programa. No lineal: a cada elemento del rbol pueden seguirle varios elementos. Estn formados por un conjunto de nodos y un conjunto de aristas que conectan pares de nodos. Un rbol binario es o bien vaco o consta de una raz, un hijo rbol binario izquierdo y otro derecho. Los rboles binarios de bsqueda permiten inserciones y acceso a los elementos en tiempo logartmico. Los rboles binarios llamados colas con prioridad soportan acceso y eliminacin del mnimo de una coleccin de elementos.
su vista no dirigida es un rbol todo vrtice tiene grado de salida a lo sumo 2 y grado de entrada a lo sumo 1. todo vrtice adyacente a un vrtice inicial x, est marcado bien como hijo izquierdo o bien como hijo. derecho
Un rbol binario tiene un vrtice con grado de entrada 0 al que llamamos raz. A los vrtices con grado de salida 0 los llamamos hojas. Para representar rboles binarios en un programa puede emplearse un TAD
para un rbol vaco ABvacio y para un rbol con un posible hijo derecho y/o un posible hijo izquierdo ABcons
Y con selectoras:
izq que retorna el hijo izquierdo de un vrtice, der que retorna el hijo derecho, raz que retorna la identificacin del vrtice raz esVacio que decide si un rbol es vaco.
del rbol.
descontroladamente, el rendimiento puede disminuir considerablemente, siendo para el caso ms desfavorable (insertar un conjunto de claves ordenadas en forma ascendente o descendente) el coste de acceso: O(N). En un rbol binario perfectamente equilibrado, el nmero de nodos en el subrbol izquierdo y el nmero de nodos en el subrbol derecho, difieren como mucho en una unidad, y los subrboles son tambin equilibrados
rboles equilibrados
Un procedimiento de insercin que siempre restaure la estructura del rbol a un equilibrio perfecto es poco eficiente. Se usa una formulacin menos estricta de equilibrio: Un rbol est equilibrado si para cada uno de sus nodos ocurre que las alturas de sus dos subrboles difieren como mucho en 1(rboles AVL).
rboles rojinegros
rbol binario de bsqueda, donde cada nodo est coloreado con los colores rojo o negro, y se verifican las siguientes propiedades: 1. La raz es negra. 2. Si un nodo es rojo, sus hijos deben ser negros. 3. Todos los caminos desde un nodo a un nodo vaco deben contener el mismo nmero de nodos negros. Las condiciones (2) y (3) aseguran que el rbol nunca est demasiado desbalanceado. (2) asegura que no puedan haber demasiados nodos rojos, y (3) dice que, despreciando el nmero de nodos rojos, que es limitado, el rbol es perfectamente balanceado. La condicin (1) es trivial: si la raz es roja, simplemente se colorea negra, ya que esto no violar ninguna regla. En los ARN la operacin eliminar se complica. Cuando se necesitan rboles equilibrados y se requieren muchas eliminaciones se emplean los AA-rboles que aaden una condicin adicional a las impuestas por los ARN: 4. Los hijos izquierdos no pueden ser rojos.
No hay vrtices repetidos En todo vrtice la altura del subrbol izquierdo (digamos altura(i)) y la altura del rbol derecho (digamos altura(d)) deben cumplir: Altura (i)=altura (d altura (i)=altura (d altura (i)+1=altura (d)
Si se logra mantener este invariante toda bsqueda se realizar con complejidad temporal O(log2 n) ---que es la complejidad temporal ptima para el problema de bsqueda. Para lograr mantenerlo deben implementarse con atencin las operaciones para insertar y eliminar elementos. Dado que estas operaciones deben mantener un invariante que requiere conocer altura de subrbol derecho e izquierdo, puede mantenerse esta informacin actualizada en los vrtices del rbol (lo cual puede disminuir tiempo requerido para calcular la altura cuando se hace el balanceo, pero aumentar espacio empleado para mantener la informacin).