Vous êtes sur la page 1sur 3

Procesamiento en amplitud.

Con esta tcnica se pretende visitar los nodos de un rbol, por niveles: primero los del nivel 1, luego los del nivel 2, luego los del 3, y as sucesivamente. En el siguiente ejemplo, los nodos se visitaran en el siguiente orden: A, C, B, D, G, H, F, E, J, I. En este caso el recorrido no se realizar de forma recursiva sino iterativa, utilizando una cola (ver Colas) como estructura de datos auxiliar. El procedimiento consiste en encolar (si no estn vacos) los subrboles izquierdo y derecho del nodo extrado de la cola, y seguir desencolando y encolando hasta que la cola est vaca.

Procesamiento en profundidad.
PREORDEN: A, C, D, F, G, E, J, B, H, I. INORDEN: F, D, C, E, G, J, A, I, H, B. POSTORDEN: F, D, E, J, G, C, I, H, B, A. Recorrido en preorden: consiste en visitar el nodo actual (visitar puede ser simplemente mostrar la clave del nodo por pantalla), y despus visitar el subrbol izquierdo y una vez visitado, visitar el subrbol derecho. Es un proceso recursivo por naturaleza. Recorrido en inorden u orden central: se visita el subrbol izquierdo, el nodo actual, y despus se visita el subrbol derecho. Recorrido en postorden: se visitan primero el subrbol izquierdo, despus el subrbol derecho, y por ltimo el nodo actual.

OPERACIONES BSICAS SOBRE RBOLES BINARIOS DE BSQUEDA

Bsqueda

Si el rbol no es de bsqueda, es necesario emplear uno de los recorridos anteriores sobre el rbol para localizarlo. El resultado es idntico al de una bsqueda secuencial. Aprovechando las propiedades del rbol de bsqueda se puede acelerar la localizacin. Simplemente hay que descender a lo largo del rbol a izquierda o derecha dependiendo del elemento que se busca. Insercin

La insercin tampoco es complicada. Es ms, resulta prcticamente idntica a la bsqueda. Cuando se llega a un rbol vaco se crea el nodo en el puntero que se pasa como parmetro por referencia, de esta manera los nuevos enlaces mantienen la coherencia. Si el elemento a insertar ya existe entonces no se hace nada. Borrado

La operacin de borrado si resulta ser algo ms complicada. Se recuerda que el rbol debe seguir siendo de bsqueda tras el borrado. Pueden darse tres casos, una vez encontrado el nodo a borrar: 1) El nodo no tiene descendientes. Simplemente se borra. 2) El nodo tiene al menos un descendiente por una sola rama. Se borra dicho nodo, y su primer descendiente se asigna como hijo del padre del nodo borrado. Ejemplo: en el rbol de la Figura 1 se borra el nodo cuya clave es -1. El rbol resultante es:

3) El nodo tiene al menos un descendiente por cada rama. Al borrar dicho nodo es necesario mantener la coherencia de los enlaces, adems de seguir manteniendo la estructura como un rbol binario de bsqueda. La solucin consiste en sustituir la informacin del nodo que se borra por el de una de las hojas, y borrar a continuacin dicha hoja. Puede ser cualquier hoja? No, debe ser la que contenga una de estas dos claves: la mayor de las claves menores al nodo que se borra. Suponer que se quiere borrar el nodo 4 del rbol de la Figura 1. Se sustituir la clave 4 por la clave 2. la menor de las claves mayores al nodo que se borra. Suponer que se quiere borrar el nodo 4 del rbol de la Figura 1. Se sustituir la clave 4 por la clave 5.

El algoritmo de borrado que se implementa a continuacin realiza la sustitucin por la mayor de las claves menores, (aunque se puede escoger la otra opcin sin prdida de generalidad). Para lograr esto es necesario descender primero a la izquierda del nodo que se va a borrar, y despus avanzar siempre a la derecha hasta encontrar un nodo hoja. A continuacin se muestra grficamente el proceso de borrar el nodo de clave 4:

Vous aimerez peut-être aussi