Está en la página 1de 7

ELIMINACIÓ N DE UN

NODO EN UN Á RBOL
BINARIO de BÚ SQUEDA.

UNSM-FISI

ASIGNATURA: lenguaje de programación I.

DOCENTE : Ing. Humberto Valdera Rodríguez

CICLO : III

SEMESTRE : 2012-I

INTEGRANTES:

I. Aranda Manchay Carlos Ritter


II. Muñoz Cieza Cesar Elvin
III.Ortiz Castillo Wilmer
ÁRBOL BINARIO DE BÚSQUEDA

La operación de eliminación resulta ser algo más complicada. El árbol debe seguir
siendo de búsqueda tras el borrado.

Una vez encontrado el nodo a eliminar pueden darse tres casos:

1. el nodo no tiene descendientes o es un nodo hoja :


Simplemente se borra manteniendo un puntero que apunte al padre y hacer
que el apuntador apunte a nulo se elimina y se libera memoria.

En este ejemplo si queremos borrar el nodo 3 simplemente hacemos que


ese nodo apunte a nulo y liberamos memoria.

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:

En este árbol si queremos eliminar el nodo 4 hacemos un intercambio con el nodo


3 y cuando los punteros izquierdo y derecho apunten a nulo recién lo eliminamos y
liberamos memoria
3. el nodo tiene al menos un descendiente por cada rama:
Al borrar dicho nodo es necesario mantener la coherencia de los enlaces y
la estructura de un árbol binario de búsqueda:

La solución consiste en sustituir la información del nodo que se borra por la


de una de las hojas y borrar a continuación dicha hoja:
• debe ser la hoja que contenga una de estas dos claves:
 el mayor elemento de su subárbol izquierdo

En este ejemplo si se desea eliminar el elemento entonces haremos


que sea remplazado por el elemento 6.

 el menor elemento de sus subárbol derecho

En este caso si deseamos eliminar el elemento 4 entonces en este caso será


remplazado por el elemento 7.
A continuación están los diagramas de flujo para eliminar un elemento en un
árbol.

1. MENÚ PRINCIPAL

INICIO

1. INSERTAR
2. BUSCAR
3. ORDENAR
4. ELIMINAR
5. SALIR
ELEGIR OPCIÓN

Raíz = p

Leer opción

op

1 Insertar()

2 buscar()

3 ordenar()

4 eliminar()

V Op ≠ 5 F fin
2. ALGORITMO PRINCIPAL

Eliminar (dato,raiz,p,q)

Buscar (dato,raiz,p,q)

F
Buscar= “v” “Dato no existe” fin

F
I(p)≠nulo v d(p)≠nulo P=nulo Liberar memoria

V
F
I(p)=nulo

V
F
d(p)=nulo

Aux=dato(p)
V
Dato(p)=dato(d(p))
Dato(d(p))=aux Búsqueda (m,raiz,p,q)
P=d(p) Aux=dato(p)
Dato(p)=dato(i(p))
Dato(i(p))=aux
P=i(p)
3. SUBPROGRAMAS DEL ALGORITMO PRINCIPAL

Buscar (dato,raiz,p,)

P=nulo V

F
Buscar= “f”

F V
Dato=dato(p)

Buscar= “v”
Dato < dato(p) F

P=i(p) P=d(p)

fin

Búsqueda (m,raiz,p,q)

Q= i(p)

D(q)=nulo

Q=d(q)
Aux=dato(p)
Dato(p)=dato(q)
Dato(q=)aux
P=q

fin
BIBLIOGRAFÍA

 http://www.ccg.unam.mx/~contrera/bioinfoPerl/node56.html

 hci.uniovi.es

 LIBRO DE FUNDAMENTOS DE PROGRAMACIÓN

 http://exa.unne.edu.ar/depar/areas/informatica/dad/DAD/Presentaciones/
Arboles_Generales_y_Binarios_y_Estructuras_de_Indices.pdf

 http://ocw.upm.es/lenguajes-y-sistemas-informaticos/estructuras-de-datos/contenidos/
tema4nuevo/Arboles.pdf

 http://www.ramos.utfsm.cl/doc/860/sc/ED-Cap55BTrees12010.pdf

También podría gustarte