Vous êtes sur la page 1sur 73

rboles balanceados

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 1

Monday, May 1, 17
rboles balanceados

Los algoritmos en rboles binarios de bsqueda dan buenos resultados en el


caso promedio pero el desempeo es malo en el peor caso:

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 1

Monday, May 1, 17
rboles balanceados

Los algoritmos en rboles binarios de bsqueda dan buenos resultados en el


caso promedio pero el desempeo es malo en el peor caso:

datos ordenados

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 1

Monday, May 1, 17
rboles balanceados

Los algoritmos en rboles binarios de bsqueda dan buenos resultados en el


caso promedio pero el desempeo es malo en el peor caso:

datos ordenados

datos en orden inverso

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 1

Monday, May 1, 17
rboles balanceados

Los algoritmos en rboles binarios de bsqueda dan buenos resultados en el


caso promedio pero el desempeo es malo en el peor caso:

datos ordenados

datos en orden inverso

llaves pequeas y grandes alternadas

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 1

Monday, May 1, 17
rboles balanceados

Los algoritmos en rboles binarios de bsqueda dan buenos resultados en el


caso promedio pero el desempeo es malo en el peor caso:

datos ordenados

datos en orden inverso

llaves pequeas y grandes alternadas

Afortunadamente para la bsqueda por BST existen tcnicas generales de


balanceo de rboles que permiten garantizar que el peor caso no ocurra jams.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 1

Monday, May 1, 17
rboles balanceados

Los algoritmos en rboles binarios de bsqueda dan buenos resultados en el


caso promedio pero el desempeo es malo en el peor caso:

datos ordenados

datos en orden inverso

llaves pequeas y grandes alternadas

Afortunadamente para la bsqueda por BST existen tcnicas generales de


balanceo de rboles que permiten garantizar que el peor caso no ocurra jams.

Las operaciones de transformacin son simples pero costosas en tiempo.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 1

Monday, May 1, 17
rboles balanceados

Los algoritmos en rboles binarios de bsqueda dan buenos resultados en el


caso promedio pero el desempeo es malo en el peor caso:

datos ordenados

datos en orden inverso

llaves pequeas y grandes alternadas

Afortunadamente para la bsqueda por BST existen tcnicas generales de


balanceo de rboles que permiten garantizar que el peor caso no ocurra jams.

Las operaciones de transformacin son simples pero costosas en tiempo.

Permiten hacer el rbol lo ms regular posible respecto a un parmetro que


depende en general de su altura.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 1

Monday, May 1, 17
rboles balanceados

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 2

Monday, May 1, 17
rboles balanceados

Una familia de rboles que satisfacen una tal condicin de regularidad se


llama familia de rboles equilibrados.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 2

Monday, May 1, 17
rboles balanceados

Una familia de rboles que satisfacen una tal condicin de regularidad se


llama familia de rboles equilibrados.

Existen varias familias de rboles equilibrados: los rboles AVL, rboles rojo-
negro, rboles 2-3 ( tambin conocidos como a-b ) ...

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 2

Monday, May 1, 17
rboles balanceados

Una familia de rboles que satisfacen una tal condicin de regularidad se


llama familia de rboles equilibrados.

Existen varias familias de rboles equilibrados: los rboles AVL, rboles rojo-
negro, rboles 2-3 ( tambin conocidos como a-b ) ...

La operacin para re-equilibrar un rbol se conoce como rotacin.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 2

Monday, May 1, 17
rboles balanceados

Una familia de rboles que satisfacen una tal condicin de regularidad se


llama familia de rboles equilibrados.

Existen varias familias de rboles equilibrados: los rboles AVL, rboles rojo-
negro, rboles 2-3 ( tambin conocidos como a-b ) ...

La operacin para re-equilibrar un rbol se conoce como rotacin.

La rotacin se puede aplicar a todos los rboles binarios.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 2

Monday, May 1, 17
rboles balanceados

Una familia de rboles que satisfacen una tal condicin de regularidad se


llama familia de rboles equilibrados.

Existen varias familias de rboles equilibrados: los rboles AVL, rboles rojo-
negro, rboles 2-3 ( tambin conocidos como a-b ) ...

La operacin para re-equilibrar un rbol se conoce como rotacin.

La rotacin se puede aplicar a todos los rboles binarios.

Una rotacin cambia la estructura de un rbol binario de bsqueda sin interferir


con el orden de sus elementos.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 2

Monday, May 1, 17
rboles balanceados

Una familia de rboles que satisfacen una tal condicin de regularidad se


llama familia de rboles equilibrados.

Existen varias familias de rboles equilibrados: los rboles AVL, rboles rojo-
negro, rboles 2-3 ( tambin conocidos como a-b ) ...

La operacin para re-equilibrar un rbol se conoce como rotacin.

La rotacin se puede aplicar a todos los rboles binarios.

Una rotacin cambia la estructura de un rbol binario de bsqueda sin interferir


con el orden de sus elementos.

Hay dos tipos de rotaciones: hacia la derecha y hacia la izquierda.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 2

Monday, May 1, 17
rboles AVL

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 3

Monday, May 1, 17
rboles AVL

Introducidos por Adelson-Velskii y Landis en 1962.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 3

Monday, May 1, 17
rboles AVL

Introducidos por Adelson-Velskii y Landis en 1962.

Constituyen una familia de BST equilibrados en altura.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 3

Monday, May 1, 17
rboles AVL

Introducidos por Adelson-Velskii y Landis en 1962.

Constituyen una familia de BST equilibrados en altura.

Un BST es un rbol AVL si, para todo nodo del rbol, las alturas de sus sub-
rboles izquierdo y derecho difieren a lo ms por 1.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 3

Monday, May 1, 17
rboles AVL

Introducidos por Adelson-Velskii y Landis en 1962.

Constituyen una familia de BST equilibrados en altura.

Un BST es un rbol AVL si, para todo nodo del rbol, las alturas de sus sub-
rboles izquierdo y derecho difieren a lo ms por 1.

Por convencin, la altura de un rbol vaco es -1 y la altura de una hoja es 0


(ambos son rboles AVL).

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 3

Monday, May 1, 17
rboles AVL

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 4

Monday, May 1, 17
rboles AVL

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 4

Monday, May 1, 17
rboles AVL

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 4

Monday, May 1, 17
rboles AVL

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 4

Monday, May 1, 17
rboles AVL

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 5

Monday, May 1, 17
rboles AVL

Implementacin anloga a los rboles binarios.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 5

Monday, May 1, 17
rboles AVL

Implementacin anloga a los rboles binarios.

Es necesario agregar un campo que contenga la altura del rbol cuya raz es el
nodo actual.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 5

Monday, May 1, 17
rboles AVL

Implementacin anloga a los rboles binarios.

Es necesario agregar un campo que contenga la altura del rbol cuya raz es el
nodo actual.

Esta modificacin convierte las operaciones de insercin y supresin ms


complicadas

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 5

Monday, May 1, 17
rboles AVL

Implementacin anloga a los rboles binarios.

Es necesario agregar un campo que contenga la altura del rbol cuya raz es el
nodo actual.

Esta modificacin convierte las operaciones de insercin y supresin ms


complicadas

hay que actualizar las alturas cada vez.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 5

Monday, May 1, 17
Operaciones en rboles AVL: insercin

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 6

Monday, May 1, 17
Operaciones en rboles AVL: insercin

Se realiza de la misma manera que en un BST:

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 6

Monday, May 1, 17
Operaciones en rboles AVL: insercin

Se realiza de la misma manera que en un BST:

bajamos en el rbol a partir de la raz para buscar la hoja donde se deba


insertar el nuevo nodo.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 6

Monday, May 1, 17
Operaciones en rboles AVL: insercin

Se realiza de la misma manera que en un BST:

bajamos en el rbol a partir de la raz para buscar la hoja donde se deba


insertar el nuevo nodo.

subir en el rbol para actualizar el valor de la altura de cada nodo


(actualizar por un solo camino).

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 6

Monday, May 1, 17
Operaciones en rboles AVL: insercin

Se realiza de la misma manera que en un BST:

bajamos en el rbol a partir de la raz para buscar la hoja donde se deba


insertar el nuevo nodo.

subir en el rbol para actualizar el valor de la altura de cada nodo


(actualizar por un solo camino).

La operacin de insercin puede desequilibrar el rbol: el rbol resultante no es


AVL.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 6

Monday, May 1, 17
Operaciones en rboles AVL: insercin

Se realiza de la misma manera que en un BST:

bajamos en el rbol a partir de la raz para buscar la hoja donde se deba


insertar el nuevo nodo.

subir en el rbol para actualizar el valor de la altura de cada nodo


(actualizar por un solo camino).

La operacin de insercin puede desequilibrar el rbol: el rbol resultante no es


AVL.

Para restablecer esta propiedad es necesario re-equilibrar el rbol por medio de


rotaciones a travs del camino que lleva de la hoja donde se realiz la
insercin a la raiz.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 6

Monday, May 1, 17
Operaciones en rboles AVL: balanceo

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 7

Monday, May 1, 17
Operaciones en rboles AVL: balanceo

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 7

Monday, May 1, 17
Operaciones en rboles AVL: balanceo

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 7

Monday, May 1, 17
Operaciones en rboles AVL: balanceo

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 7

Monday, May 1, 17
Operaciones en rboles AVL: balanceo

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 7

Monday, May 1, 17
Operaciones en rboles AVL: balanceo

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 8

Monday, May 1, 17
Operaciones en rboles AVL: balanceo

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 8

Monday, May 1, 17
Operaciones en rboles AVL: balanceo

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 8

Monday, May 1, 17
Operaciones en rboles AVL: balanceo

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 8

Monday, May 1, 17
Operaciones en rboles AVL: balanceo

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 8

Monday, May 1, 17
Operaciones en rboles AVL: balanceo

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 8

Monday, May 1, 17
Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 9

Monday, May 1, 17
Operaciones en rboles AVL: balanceo

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 10

Monday, May 1, 17
Operaciones en rboles AVL: balanceo

Despus de una insercin en un rbol AVL basta con hacer una o dos
rotaciones para re-equilibrar el rbol.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 10

Monday, May 1, 17
Operaciones en rboles AVL: balanceo

Despus de una insercin en un rbol AVL basta con hacer una o dos
rotaciones para re-equilibrar el rbol.

La operacin de insercin/balance de un AVL con n nodos se realiza en un


tiempo O(log2(n)).

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 10

Monday, May 1, 17
Operaciones en rboles AVL: eliminacin

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 11

Monday, May 1, 17
Operaciones en rboles AVL: eliminacin

Se realiza de la misma manera que en un BST:

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 11

Monday, May 1, 17
Operaciones en rboles AVL: eliminacin

Se realiza de la misma manera que en un BST:

bajamos en el rbol a partir de la raz para buscar el nodo que contiene la


llave a suprimir.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 11

Monday, May 1, 17
Operaciones en rboles AVL: eliminacin

Se realiza de la misma manera que en un BST:

bajamos en el rbol a partir de la raz para buscar el nodo que contiene la


llave a suprimir.

si se trata de una hoja, la eliminamos.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 11

Monday, May 1, 17
Operaciones en rboles AVL: eliminacin

Se realiza de la misma manera que en un BST:

bajamos en el rbol a partir de la raz para buscar el nodo que contiene la


llave a suprimir.

si se trata de una hoja, la eliminamos.

si no, remplazamos el nodo por su nodo sucesor y suprimimos el sucesor.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 11

Monday, May 1, 17
Operaciones en rboles AVL: eliminacin

Se realiza de la misma manera que en un BST:

bajamos en el rbol a partir de la raz para buscar el nodo que contiene la


llave a suprimir.

si se trata de una hoja, la eliminamos.

si no, remplazamos el nodo por su nodo sucesor y suprimimos el sucesor.

Para re-equilibrar realizamos rotaciones y dobles rotaciones a lo largo del camino


que lleva de la hoja donde se realiz la eliminacin a la raz.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 11

Monday, May 1, 17
Operaciones en rboles AVL: eliminacin

Se realiza de la misma manera que en un BST:

bajamos en el rbol a partir de la raz para buscar el nodo que contiene la


llave a suprimir.

si se trata de una hoja, la eliminamos.

si no, remplazamos el nodo por su nodo sucesor y suprimimos el sucesor.

Para re-equilibrar realizamos rotaciones y dobles rotaciones a lo largo del camino


que lleva de la hoja donde se realiz la eliminacin a la raz.

El nmero de rotaciones o dobles rotaciones necesarias es menor o igual a la


altura del rbol (se realiza a lo ms, una por nivel)

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 11

Monday, May 1, 17
Operaciones en rboles AVL: eliminacin

Se realiza de la misma manera que en un BST:

bajamos en el rbol a partir de la raz para buscar el nodo que contiene la


llave a suprimir.

si se trata de una hoja, la eliminamos.

si no, remplazamos el nodo por su nodo sucesor y suprimimos el sucesor.

Para re-equilibrar realizamos rotaciones y dobles rotaciones a lo largo del camino


que lleva de la hoja donde se realiz la eliminacin a la raz.

El nmero de rotaciones o dobles rotaciones necesarias es menor o igual a la


altura del rbol (se realiza a lo ms, una por nivel)

La operacin de eliminacin/balance de un AVL con n nodos se realiza en un


tiempo O(log2(n)).

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 11

Monday, May 1, 17
rboles AVL

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 12

Monday, May 1, 17
rboles AVL

rboles binarios de bsqueda que verifican una propiedad de equilibrio


suplementaria.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 12

Monday, May 1, 17
rboles AVL

rboles binarios de bsqueda que verifican una propiedad de equilibrio


suplementaria.

El mantenimiento de esta propiedad no aumenta el costo de las operaciones


de bsqueda, insercin o supresin en el rbol.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 12

Monday, May 1, 17
rboles AVL

rboles binarios de bsqueda que verifican una propiedad de equilibrio


suplementaria.

El mantenimiento de esta propiedad no aumenta el costo de las operaciones


de bsqueda, insercin o supresin en el rbol.

Permite garantizar que la altura del rbol AVL permanezca logartmica a su nmero
de nodos.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 12

Monday, May 1, 17
rboles AVL

rboles binarios de bsqueda que verifican una propiedad de equilibrio


suplementaria.

El mantenimiento de esta propiedad no aumenta el costo de las operaciones


de bsqueda, insercin o supresin en el rbol.

Permite garantizar que la altura del rbol AVL permanezca logartmica a su nmero
de nodos.

Estructura mas compleja de implementar que un BST pero solo ofrece


ventajas.

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 12

Monday, May 1, 17
El apuntador this, para saber quin es quien

class clase {
public:
clase() {}
void EresTu(clase& c) {
if(&c == this) cout << "S, soy yo." << endl;
else cout << "No, no soy yo." << endl;
}
};

int main() {
clase c1, c2;

c1.EresTu(c2);
c1.EresTu(c1);

return 0;
}
Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 13

Monday, May 1, 17
El apuntador this para diferenciar variables

struct X {
private:
int a;
public:
void Set_a(int a) {

// The 'this' pointer is used to retrieve 'xobj.a'


// hidden by the automatic variable 'a'
this->a = a;
}
void Print_a() { cout << "a = " << a << endl; }
};

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 14

Monday, May 1, 17
El apuntador this para usar funciones que requieren
un apuntador

struct X {
private:
int a;
public:
void reset(X *obj) {
obj->a = -1;
}

void empieza(void){
reset(this);
limpiaMemoria(this);
}

};

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 15

Monday, May 1, 17
rboles Top-down 2-3-4

O es un arbol vacio o tiene 3 tipos de nodos: 2-node con 1 llave


y dos hijos, 3-node con 2 llaves y 3 hijos o 4-node con 3 llaves y
4 hijos. El orden de los nodos hijos es intuitivo (el hijo de enmedio
es menor que el padre derecho y mayor que el padre izquierdo).
- La distancia de la raz a cada apuntador nulo es siempre la
misma.
Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 16

Monday, May 1, 17
rboles Top-down 2-3-4

Insercin:
-Convertir de 2-nodo a un 3-node.
-Convertir de 3-nodo a un 4-node.
-Partir un 4-node pasando la llave de
en medio al padre (convirtiendolo en
3-node) y luego covirtiendo un 2-
node en 3-node

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 17

Monday, May 1, 17
rboles Top-down 2-3-4

Podemos partir cualquier 4-node que no es el hijo de


otro 4-node en 2-nodes, pasando la llave de en
medio a su padre.
Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 18

Monday, May 1, 17
A
rboles Top-down 2-3-4 S
(construccion) E

En la construccin,
C
dividimos cualquier 4-
node que encontramos H
en el camino,
asegurando as que hay I

espacio para para el N


nuevo Item hasta abajo.
G
Divide la
raz
X

Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 19

Monday, May 1, 17
rboles rojo-negros

Estos estn basados en los rboles Top down 2-3-4.

El color del nodo


es el color del link
que llega a l
desde su padre.

De tal forma que las conexiones internas son


Rojas (anchas) y las conexiones externas son
negras (delgadas).
Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 20

Monday, May 1, 17
rboles rojo-negros

Arbol rojo-negro, (i) mismo que el anterior.


(ii)La bsqueda es la misma que en un BST.
Cualquier camino de raiz-hoja tiene 2 conexiones negras.
Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 21

Monday, May 1, 17
rboles rojo-negros

Divsin de los 4-node en un rbol rojo negro.

(Si un nodo tiene 2 hijos


rojos es un 4-node)

Las operaciones comprenden el cambiar de


color los nodos(ligas) y hacer 1 o 2 rotaciones.
Alonso Ramrez Manzanares Computacin y Algoritmos 27.04 22

Monday, May 1, 17

Vous aimerez peut-être aussi