Árboles binarios de búsqueda

Slides:



Advertisements
Presentaciones similares
5. Estructuras no lineales estáticas y dinámicas
Advertisements

ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS DE BUSQUEDA.
Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
GRAFOS ESTRUCTURAS DE DATOS.
ÁRBOLES EN C UNIVERSIDAD “ALONSO DE OJEDA” Facultad de Ingeniería
Unidad 5 Listas Enlazadas Bibliografía: Algoritmos y Estructuras de datos de Aguilar y Martinez. Unidad 9 Autor: Ing Rolando Simon Titiosky.
Listas enlazadas c++ Prof. Franklin Cedeño.
Estructuras de datos y algoritmos
Utilización de un TAD Arbol.
1 Extensión de un Estructura de Datos Agustín J. González ELO-320: Estructura de Datos y Algoritmos.
Programación y Estructuras de Datos
Igor Santos Grueiro. Muchos objetos tienen CLAVE.
ÁRBOLES BINARIOS DE BUSQUEDA
Operaciones sobre un árbol
Árboles binarios. Algoritmos básicos
Tema 4 Árboles. Árbol sobre matriz.
Tema 4 Árboles. Conceptos Generales..
ESTRUCTURAS DE DATOS AVANZADAS
Cont. Arbol Binario de Búsqueda
Árboles balanceados AVL
Programación II Colas Igor Santos Grueiro.
Integrantes: Esteban Jiménez Guesseppe Lozada Mario Rodriguez Gustavo Tenorio Fabio.
ÁRBOLES DE EXPRESION.
Definición Estructura de datos jerárquica (no lineal) que puede representarse como un conjunto de nodos enlazados entre sí por medio de ramas. Formalmente,
Slide 7-1 Copyright © 2003 Pearson Education, Inc. Figure: Estructuras de datos.
Cont. Arbol Binario de Búsqueda (2). Sobre los recorridos Las versiones recursivas de los recorridos son costosas debido a la gran cantidad de llamadas.
Diplomado en Informática Aplicada
Almacenamiento y Recuperacion de Información TAD_ABB Ana Lilia Laureano Cruces Universidad Autónoma Metroplotiana.
Estructuras dinámicas de datos, TAD Lista, parte 2
Igor Santos Grueiro. De este tipo de pilas NO vamos a hablar.
Listas circulares.
Árboles.
ÁRBOLES BINARIOS DE BÚSQUEDA
ARBOLES ESTRUCTURAS DE DATOS.
Estructura de Datos y Algoritmos
Arboles M.C. José Andrés Vázquez FCC/BUAP
ARBOLES ESTRUCTURAS DE DATOS.
1 Estructuras de Datos Elementales:stacks (pilas), queues (colas), linked lists (listas enlazadas), y rooted trees (árboles con raíz) Agustín J. González.
ARBOLES ROJO – NEGROS. INTEGRANTES Bazan Gonzales Jose Antonio García López Carlos Omar.

Árboles Binarios Estructuras de Datos.
LISTA DOBLEMENTE ENLAZADA
Árboles de Búsqueda Binaria
Con el objeto de mejorar el rendimiento en la búsqueda surgen los árboles balanceados. La idea central de estos es la de realizar reacomodó o balanceos.
Arboles binarios de búsqueda. Elemento estándar: Cuenta class Cuenta { public: int codigo; char nombreCliente[50]; float saldo; public: Cuenta(); Cuenta(int.
Diccionarios El TDA diccionario Búsqueda binaria
Unidad 6: Árboles.
1 Extensión de un Estructura de Datos Agustín J. González ELO-320: Estructura de Datos y Algoritmos.
1 Árboles de Búsqueda Binaria Agustín J. González ELO-320: Estructura de Datos y Algoritmos.
Punteros, referencias Listas enlazadas Arboles
Algoritmos y Estructuras de datos Listas Doblemente enlazadas
ARBOLES GENERALIZADOS
Árboles Binarios de Búsqueda (ABB)
R ECORRIDO DE ÁRBOLES BINARIOS POR AMPLITUD O POR NIVELES Elaborado por: Luis Alberto Fonseca Esquivel Eduardo Acosta Casillas.
Arboles Binarios.
A YUDANTÍA 5: A RBOLES Carlos Pulgar R. Mail: Página Ayudantía:
Árboles Binarios * Recorridos * Tipo
Listas. Utilización de un TAD Lista. Interfaz del TAD LISTA public interface Lista { void crearNodo (); /*Crea un nuevo nodo en el TadLista*/ int devolverClave.
M.C. Meliza Contreras González
Listas Dinámicas.
Arboles Binarios: AVL (Adelson – Velskii - Landis)
1 ListaUna Lista se define como una serie de N elementos E 1, E 2,..., E N, ordenados de manera consecutiva, es decir, el elemento E k (que se denomina.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
Árboles binarios. Algoritmos básicos
Tema 3 Árboles. Conceptos Generales. Curso 2014/2015 ETSISI UPM.
LISTAS..
ÁRBOLES DE EXPRESION. Un árbol de expresión sirve para evaluar expresiones del tipo: (a+b)*c/d Para que un árbol represente una expresión se deben tomar.
Árboles Binarios Estructuras de Datos.
Árboles Binarios Estructuras de Datos. Las estructuras dinámicas son las en la ejecución varia el número de elementos y uso de memoria a lo largo del.
Transcripción de la presentación:

Árboles binarios de búsqueda Eliminar un nodo

Casos posibles Si el nodo a eliminar es un: Nodo hoja Nodo con un hijo Buscar el Nodo Padre del nodo a borrar. Desconectarlo. Liberar el nodo. Nodo con un hijo Conectar el hijo con el padre del nodo a borrar. Nodo con dos hijos Localizar el nodo predecesor o sucesor del nodo a borrar. Copiar la información. Eliminar el predecesor o sucesor según sea el caso.

Caso: Eliminar Nodo hoja Eliminar el valor 25 Paso 1 21 Nodo Padre localizado 33 13 Paso 2 40 10 18 25 21 13 33 40 10 18 25 Desconectarlo y liberar el nodo

Caso: Eliminar Nodo con un hijo Eliminar el valor 25 Paso 1 21 Nodo Padre localizado 33 13 Paso 2 40 10 18 25 21 29 13 33 25 27 30 40 10 18 29 Conectar el Nodo Padre con el Nodo Hijo y liberar el nodo. 27 30

Caso: Eliminar nodo con dos hijos Localizar el nodo predecesor o sucesor del nodo a borrar. El PREDECESOR es “el Mayor de los Menores”. El SUCESOR es “el Menor de los Mayores”. Para la implementación es igual de eficiente programar la búsqueda del predecesor que del sucesor. El valor del Predecedor (o sucesor) se copia al nodo a borrar. Eliminar el nodo del predecesor (o sucesor según sea el caso).

Predecesor El predecesor de: Es: 33 30 21 13 29 27 Uno a la IZQUIERDA y todo a la DERECHA 21 El predecesor de: Es: 33 30 21 13 29 27 33 13 40 10 25 29 27 30

Sucesor El sucesor de: Es: 21 25 33 40 29 30 Uno a la DERECHA y todo a la IZQUIERDA 21 El sucesor de: Es: 21 25 33 40 29 30 33 13 40 10 18 25 29 27 30

Caso: Eliminar Nodo con dos hijos usando el predecesor Eliminar el valor 21 Paso 2 Paso 1 Localizar el valor a borrar 21 21 13 33 13 33 40 10 40 18 25 10 18 25 Localizar el Predecesor Paso 4 Copiar el valor del Predecesor al nodo que contenía el valor a borrar Paso 3 18 18 13 33 13 33 10 40 18 25 10 40 18 25 Desconectar y liberar el nodo del Predecesor

Caso: Eliminar Nodo con dos hijos usando el sucesor Eliminar el valor 21 Paso 2 Paso 1 Localizar el valor a borrar 21 21 13 33 13 33 40 10 40 18 25 10 18 25 Localizar el Sucesor Paso 4 Copiar el valor del Sucesor al nodo que contenía el valor a borrar Paso 3 18 25 13 33 13 33 10 40 18 25 10 40 18 25 Desconectar y liberar el nodo del Sucesor

Implementación int eliminar(PARBOL *a, int dato) { void sustituir(PARBOL *a, PARBOL *aux); PARBOL *aux; if (*a == NULL) return 0; if ((*a)->dato < dato) eliminar(&(*a)->der, dato); else if ((*a)->dato > dato) eliminar(&(*a)->izq, dato); else if ((*a)->dato == dato) { aux = *a; if ((*a)->izq == NULL) *a = (*a)->der; else if ((*a)->der == NULL) *a = (*a)->izq; else sustituir(&(*a)->izq, &aux); free(aux); } return 1; void sustituir(PARBOL *a, PARBOL *aux) { if ((*a)->der != NULL) sustituir(&(*a)->der, aux); else { (*aux)->dato = (*a)->dato; *aux = *a; *a = (*a)->izq; }