Desarrollo de videojuegos 3: técnicas avanzadas (2ª edición)

Page 80

[62]

CAPÍTULO 2. C++ AVANZADO

mantienen un atributo parent que apunta al nodo padre, y un par de punteros left y right que apuntan al hijo por la izquierda y por la derecha respectivamente. A su vez cada hijo puede tener otros nodos hijos, por lo que realmente cada nodo cuenta con dos subárboles (izquierdo y derecho).

Las operaciones básicas de los árboles se ejecutan en un tiempo proporcional a la altura del árbol. Eso implica O(log n) en el caso peor si está correctamente balanceado, pero O(n) si no lo está.

Árboles de búsqueda binaria

10

1

4 1

17 5

16

4 21

10 5

17 16

21

Figura 2.2: Dos árboles de búsqueda binaria. Ambos contienen los mismos elementos pero el de la izquierda es mucho más eficiente.

Los árboles de búsqueda binaria se definen por la siguiente propiedad: Todos los nodos del subárbol izquierdo de un nodo tienen una clave menor o igual a la de dicho nodo. Análogamente, la clave de un nodo es siempre menor o igual que la de cualquier otro nodo del subárbol derecho. Por tratarse del primer tipo de árboles expondremos con cierto detalle su implementación. Como en cualquier árbol necesitamos modelar los nodos del árbol, que corresponden a una simple estructura:


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.