SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
Árboles como Estructuras
      de Búsqueda
       Apoyo SSD5
Uso de árboles en búsquedas
Los árboles binarios de búsqueda son otro
tipo de árbol binario, caracterizados por la
ordenación de elementos dentro del árbol.




                 Mtl Lourdes Cahuich       2
Uso de árboles en búsquedas
Los árboles binarios de búsqueda
mantienen elementos en un orden
ordenado.
Debido a esto, los árboles binarios de
búsqueda, soportan de manera efectiva la
búsqueda de elementos individuales



                Mtl Lourdes Cahuich        3
Uso de árboles en búsquedas
Los árboles binarios de búsqueda
mantienen los elementos en orden.
Todos los elementos menores que la
raíz son almacenados en el árbol
enraizado en el hijo izquierdo de la
raíz.



               Mtl Lourdes Cahuich     4
Uso de árboles en búsquedas
Todos los elementos mayores que la
raíz son almacenados en el árbol
enraizado en el hijo derecho de la
raíz.
Este principio se aplica de forma recursiva
para todos los nodos del árbol.



                 Mtl Lourdes Cahuich      5
Uso de árboles en búsquedas
Para cualquier nodo en un árbol binario
de búsqueda, todos los elementos en el
subárbol del hijo izquierdo, son
menores que el elemento en el nodo.
También, todos los elementos en el
subárbol en el hijo derecho son
mayores que el elemento en el nodo


                Mtl Lourdes Cahuich       6
Mtl Lourdes Cahuich   7
Uso de árboles en búsquedas
No todos los árboles binarios de búsqueda
tienen todos los nodos hoja en el mismo
nivel dentro del árbol.
Los árboles binarios de búsqueda pueden
estar desequilibrados.




                Mtl Lourdes Cahuich     8
Variaciones en los árboles
Un árbol desequilibrado es un árbol que
tiene subárboles izquierdos y derechos,
cuya altura difiere por más de un nivel.




                 Mtl Lourdes Cahuich       9
Variaciones en los árboles
Los árboles binarios de búsqueda se
vuelven desequilibrados cuando los
elementos de tamaño creciente o
decreciente se agregan continuamente a
la estructura.




               Mtl Lourdes Cahuich       10
Variaciones en los árboles
El desempeño de un árbol binario de
búsqueda se aproxima al del tiempo lineal
cuando la estructura llega a ser muy
desequilibrada




                Mtl Lourdes Cahuich     11
Mtl Lourdes Cahuich   12
Variaciones en los árboles
Un nodo en un árbol binario de búsqueda
puede contener solamente un hijo.
Un árbol binario de búsqueda que
contiene uno o más de estos tipos de
nodos, es un árbol incompleto




               Mtl Lourdes Cahuich        13
Cómo Usar Estructuras de
        Árbol
Uso de Árboles Binarios de
           Búsqueda
Un árbol binario de búsqueda es una
estructura de datos basada en un árbol
que mantiene una colección ordenada de
elementos.




               Mtl Lourdes Cahuich       15
Uso de Árboles Binarios de
           Búsqueda
Por la forma en que mantienen el orden
de sus elementos almacenados, los
árboles binarios de búsqueda pueden
desarrollar ciertas tareas más
eficientemente que otras estructuras de
datos.



                Mtl Lourdes Cahuich       16
template <class T>
class BSTree {
protected:
    BSTNode<T> *root;     // root of tree
    int count;         // size of tree
public:
    BSTree() : root(NULL), count(0) {}
    BSTree(const BSTree&);
    virtual ~BSTree() {if (root) delete root;}
    virtual int size() const { return count; }
    virtual bool insert( const T& x );
    virtual const T* const search( const T& x );
    virtual bool remove( const T& x );



                     Mtl Lourdes Cahuich     17
protected:
    virtual BSTNode<T>*
  copy_tree(BSTNode<T>* nodep);
    virtual bool insert_helper(BSTNode<T>
  *&nodep, const T &x);
    virtual const T* const
  search_helper(BSTNode<T> * nodep, const T
  &x);
    virtual bool remove_helper(BSTNode<T>
  *&nodep, const T &x);
    virtual BSTNode<T>*
  remove_leftmost_child(BSTNode<T> *&nodep);
};

                  Mtl Lourdes Cahuich      18
Uso de Árboles Binarios de
           Búsqueda
Esta es una clase del árbol binario de
búsqueda que soporta operaciones para
la inserción, acceso, y eliminación de
elementos.
También contiene un método que regresa
el número de elementos actualmente
almacenados en el árbol binario de
búsqueda.

               Mtl Lourdes Cahuich       19
BSTree
La clase BSTree es una plantilla de clase.
Esto nos permite crear instancias de la
clase que pueden almacenar diferentes
tipos de datos.




                 Mtl Lourdes Cahuich     20
BSTree
Una consideración importante que
debemos de tomar en cuenta antes de
usar esta clase, es que internamente,
algunos de los métodos de esta clase
usan operadores ==, <, y > para
desarrollar la tarea de inserción, acceso, y
eliminación de elementos


                 Mtl Lourdes Cahuich       21
BSTree
Por lo tanto, cualquier objeto que
almacenemos en esta clase del árbol
binario de búsqueda, debe proveer estos
operadores




                Mtl Lourdes Cahuich       22
template <class T>
const T* const BSTree<T>::search_helper(BSTNode<T>
*nodep, const T &x) {
    if (nodep == 0) {
        return NULL;
    }
    if (x == nodep->data) {
        return &(nodep->data);
    }
    if (x < nodep->data) {
        return search_helper(nodep->left, x);
    }
    else {
        return search_helper(nodep->right, x);
    }
}
                        Mtl Lourdes Cahuich          23
BSTree -search
La función search ofrece una forma de
acceder elementos que existen en el árbol
binario de búsqueda.
Si el elemento solicitado no es encontrado
en el árbol binario de búsqueda, la función
regresa el apuntador nulo.



                 Mtl Lourdes Cahuich      24
BSTree -search
De otra forma, la función regresa un
apuntador constante a una versión
constante del elemento




                 Mtl Lourdes Cahuich   25
BSTree -search
El apuntador debe ser constante para
prevenir que un usuario intente obtener
acceso a otra porción de memoria usando
la aritmética del apuntador.
El elemento al que apunta el apuntador
debe ser constante para asegurar que se
mantenga la integridad del árbol.


               Mtl Lourdes Cahuich    26
BSTree -search
Cambiar el valor de un elemento
almacenado podría posiblemente cambiar
el lugar donde debe ser almacenado el
elemento en el árbol binario de búsqueda.




                Mtl Lourdes Cahuich     27
BSTree -search
El proceso correcto para actualizar un
elemento almacenado involucra primero
remover el elemento, luego actualizar una
copia del elemento, y después insertar la
copia actualizada.




                Mtl Lourdes Cahuich     28
Cómo Usar Heaps
Heaps
Los heaps son árboles binarios usados a
menudo para brindar un acceso eficiente
al valor mínimo o máximo de un conjunto
de valores.
Un uso de esta funcionalidad es la
implantación de una cola de prioridades



                Mtl Lourdes Cahuich       30
Heaps
Una cola de prioridades es una estructura
de datos que se comporta de forma similar
a una cola regular, debido a que ofrece los
métodos push, pop, size, y empty.




                 Mtl Lourdes Cahuich      31
Heaps
Las colas de prioridad se diferencian de
las colas regulares debido a que el
elemento pop que elimina una cola de
prioridad, depende de una prioridad
asignada, y no del principio quot;Primero-en-
Entrar, Primero-en Salirquot;.



                 Mtl Lourdes Cahuich        32
Heaps
Las colas de prioridad son usadas
regularmente, STL provee el adaptador
priority_queue




                Mtl Lourdes Cahuich     33

Más contenido relacionado

Destacado (20)

Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Clase 10 Estructuras De Datos Y Arreglos
Clase 10 Estructuras De Datos Y ArreglosClase 10 Estructuras De Datos Y Arreglos
Clase 10 Estructuras De Datos Y Arreglos
 
Estructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractosEstructuras de datos y tipos de datos abstractos
Estructuras de datos y tipos de datos abstractos
 
Estructura de Datos Unidad 1 Tipo abstracto de datos TAD
Estructura de Datos Unidad 1 Tipo abstracto de datos TADEstructura de Datos Unidad 1 Tipo abstracto de datos TAD
Estructura de Datos Unidad 1 Tipo abstracto de datos TAD
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Estructura de datos, pilas, árboles, colas, listas
Estructura de datos, pilas, árboles, colas, listasEstructura de datos, pilas, árboles, colas, listas
Estructura de datos, pilas, árboles, colas, listas
 
Punteros
PunterosPunteros
Punteros
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceados
 
HEAPS
HEAPSHEAPS
HEAPS
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceados
 
Programacion de Cadenas
Programacion de CadenasProgramacion de Cadenas
Programacion de Cadenas
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceados
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceados
 
Tda y heaps
Tda y heapsTda y heaps
Tda y heaps
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Pilas y Colas
Pilas y ColasPilas y Colas
Pilas y Colas
 
Arboles
ArbolesArboles
Arboles
 
ESTRUCTURAS DE DATOS FUNDAMENTALES
ESTRUCTURAS DE DATOS FUNDAMENTALESESTRUCTURAS DE DATOS FUNDAMENTALES
ESTRUCTURAS DE DATOS FUNDAMENTALES
 

Similar a 18 Arboles Como Estructura De Busqueda

9 Colas
9 Colas9 Colas
9 ColasUVM
 
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)Eli Diaz
 
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)Fuerza Auriazul
 
7 Stl Y Los Contenedores Basicos 3 Parte
7 Stl Y Los Contenedores Basicos 3 Parte7 Stl Y Los Contenedores Basicos 3 Parte
7 Stl Y Los Contenedores Basicos 3 ParteUVM
 
10 Pilas
10 Pilas10 Pilas
10 PilasUVM
 
8 Listas Encadenadas
8 Listas Encadenadas8 Listas Encadenadas
8 Listas EncadenadasUVM
 
Estructura de Datos - Unidad III Estructuras Lineales
Estructura de Datos - Unidad III Estructuras LinealesEstructura de Datos - Unidad III Estructuras Lineales
Estructura de Datos - Unidad III Estructuras LinealesJosé Antonio Sandoval Acosta
 
Angela y vicky I-B
Angela y vicky I-BAngela y vicky I-B
Angela y vicky I-BvictoriaRJ
 
7 Stl Y Los Contenedores Basicos
7 Stl Y Los Contenedores Basicos7 Stl Y Los Contenedores Basicos
7 Stl Y Los Contenedores BasicosUVM
 
Manejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, BeneficiosManejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, Beneficiosejosue23
 
Informe de Arboles.pdf
Informe de Arboles.pdfInforme de Arboles.pdf
Informe de Arboles.pdfdciutsucre
 
Objetos y arreglos en C#
Objetos y arreglos en C#Objetos y arreglos en C#
Objetos y arreglos en C#UVM
 
javadesdecerocolecciones-140914051359-phpapp01.pptx
javadesdecerocolecciones-140914051359-phpapp01.pptxjavadesdecerocolecciones-140914051359-phpapp01.pptx
javadesdecerocolecciones-140914051359-phpapp01.pptxCompusoftnetCiaLtda
 
Presentación Estructuras de Datos Y Estructuras de Almacenamiento.pptx
Presentación Estructuras de Datos Y Estructuras de Almacenamiento.pptxPresentación Estructuras de Datos Y Estructuras de Almacenamiento.pptx
Presentación Estructuras de Datos Y Estructuras de Almacenamiento.pptxCarlosEspaa16
 
Clasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptxClasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptxRam Vazquez
 

Similar a 18 Arboles Como Estructura De Busqueda (20)

9 Colas
9 Colas9 Colas
9 Colas
 
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
Investigacion ed (pseudocodigo, algoritmo, listas, colas, arboles)
 
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
METODOS DE ORDENACION ORDENAMIENTO Y BUSQUEDA (ALGORITMOS)
 
7 Stl Y Los Contenedores Basicos 3 Parte
7 Stl Y Los Contenedores Basicos 3 Parte7 Stl Y Los Contenedores Basicos 3 Parte
7 Stl Y Los Contenedores Basicos 3 Parte
 
Estructuras en C++
Estructuras en C++Estructuras en C++
Estructuras en C++
 
Analisissss
AnalisissssAnalisissss
Analisissss
 
10 Pilas
10 Pilas10 Pilas
10 Pilas
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
8 Listas Encadenadas
8 Listas Encadenadas8 Listas Encadenadas
8 Listas Encadenadas
 
Estructura de Datos - Unidad III Estructuras Lineales
Estructura de Datos - Unidad III Estructuras LinealesEstructura de Datos - Unidad III Estructuras Lineales
Estructura de Datos - Unidad III Estructuras Lineales
 
Angela y vicky I-B
Angela y vicky I-BAngela y vicky I-B
Angela y vicky I-B
 
7 Stl Y Los Contenedores Basicos
7 Stl Y Los Contenedores Basicos7 Stl Y Los Contenedores Basicos
7 Stl Y Los Contenedores Basicos
 
Estructura de datos 2 corte
Estructura de datos 2 corteEstructura de datos 2 corte
Estructura de datos 2 corte
 
Oracle3
Oracle3Oracle3
Oracle3
 
Manejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, BeneficiosManejo de Estructura de Datos, Tipos, Beneficios
Manejo de Estructura de Datos, Tipos, Beneficios
 
Informe de Arboles.pdf
Informe de Arboles.pdfInforme de Arboles.pdf
Informe de Arboles.pdf
 
Objetos y arreglos en C#
Objetos y arreglos en C#Objetos y arreglos en C#
Objetos y arreglos en C#
 
javadesdecerocolecciones-140914051359-phpapp01.pptx
javadesdecerocolecciones-140914051359-phpapp01.pptxjavadesdecerocolecciones-140914051359-phpapp01.pptx
javadesdecerocolecciones-140914051359-phpapp01.pptx
 
Presentación Estructuras de Datos Y Estructuras de Almacenamiento.pptx
Presentación Estructuras de Datos Y Estructuras de Almacenamiento.pptxPresentación Estructuras de Datos Y Estructuras de Almacenamiento.pptx
Presentación Estructuras de Datos Y Estructuras de Almacenamiento.pptx
 
Clasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptxClasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptx
 

Más de UVM

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programaciónUVM
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaUVM
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempoUVM
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosUVM
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglosUVM
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadoresUVM
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlUVM
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadoresUVM
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicosUVM
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datosUVM
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funcionesUVM
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funcionesUVM
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bitsUVM
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreUVM
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3UVM
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuarioUVM
 
Función main()
Función main()Función main()
Función main()UVM
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++UVM
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoUVM
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++UVM
 

Más de UVM (20)

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programación
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación Avanzada
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempo
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicos
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglos
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadores
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stl
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadores
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicos
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datos
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funciones
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funciones
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bits
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembre
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuario
 
Función main()
Función main()Función main()
Función main()
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agosto
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++
 

Último

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 

Último (20)

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 

18 Arboles Como Estructura De Busqueda

  • 1. Árboles como Estructuras de Búsqueda Apoyo SSD5
  • 2. Uso de árboles en búsquedas Los árboles binarios de búsqueda son otro tipo de árbol binario, caracterizados por la ordenación de elementos dentro del árbol. Mtl Lourdes Cahuich 2
  • 3. Uso de árboles en búsquedas Los árboles binarios de búsqueda mantienen elementos en un orden ordenado. Debido a esto, los árboles binarios de búsqueda, soportan de manera efectiva la búsqueda de elementos individuales Mtl Lourdes Cahuich 3
  • 4. Uso de árboles en búsquedas Los árboles binarios de búsqueda mantienen los elementos en orden. Todos los elementos menores que la raíz son almacenados en el árbol enraizado en el hijo izquierdo de la raíz. Mtl Lourdes Cahuich 4
  • 5. Uso de árboles en búsquedas Todos los elementos mayores que la raíz son almacenados en el árbol enraizado en el hijo derecho de la raíz. Este principio se aplica de forma recursiva para todos los nodos del árbol. Mtl Lourdes Cahuich 5
  • 6. Uso de árboles en búsquedas Para cualquier nodo en un árbol binario de búsqueda, todos los elementos en el subárbol del hijo izquierdo, son menores que el elemento en el nodo. También, todos los elementos en el subárbol en el hijo derecho son mayores que el elemento en el nodo Mtl Lourdes Cahuich 6
  • 8. Uso de árboles en búsquedas No todos los árboles binarios de búsqueda tienen todos los nodos hoja en el mismo nivel dentro del árbol. Los árboles binarios de búsqueda pueden estar desequilibrados. Mtl Lourdes Cahuich 8
  • 9. Variaciones en los árboles Un árbol desequilibrado es un árbol que tiene subárboles izquierdos y derechos, cuya altura difiere por más de un nivel. Mtl Lourdes Cahuich 9
  • 10. Variaciones en los árboles Los árboles binarios de búsqueda se vuelven desequilibrados cuando los elementos de tamaño creciente o decreciente se agregan continuamente a la estructura. Mtl Lourdes Cahuich 10
  • 11. Variaciones en los árboles El desempeño de un árbol binario de búsqueda se aproxima al del tiempo lineal cuando la estructura llega a ser muy desequilibrada Mtl Lourdes Cahuich 11
  • 13. Variaciones en los árboles Un nodo en un árbol binario de búsqueda puede contener solamente un hijo. Un árbol binario de búsqueda que contiene uno o más de estos tipos de nodos, es un árbol incompleto Mtl Lourdes Cahuich 13
  • 15. Uso de Árboles Binarios de Búsqueda Un árbol binario de búsqueda es una estructura de datos basada en un árbol que mantiene una colección ordenada de elementos. Mtl Lourdes Cahuich 15
  • 16. Uso de Árboles Binarios de Búsqueda Por la forma en que mantienen el orden de sus elementos almacenados, los árboles binarios de búsqueda pueden desarrollar ciertas tareas más eficientemente que otras estructuras de datos. Mtl Lourdes Cahuich 16
  • 17. template <class T> class BSTree { protected: BSTNode<T> *root; // root of tree int count; // size of tree public: BSTree() : root(NULL), count(0) {} BSTree(const BSTree&); virtual ~BSTree() {if (root) delete root;} virtual int size() const { return count; } virtual bool insert( const T& x ); virtual const T* const search( const T& x ); virtual bool remove( const T& x ); Mtl Lourdes Cahuich 17
  • 18. protected: virtual BSTNode<T>* copy_tree(BSTNode<T>* nodep); virtual bool insert_helper(BSTNode<T> *&nodep, const T &x); virtual const T* const search_helper(BSTNode<T> * nodep, const T &x); virtual bool remove_helper(BSTNode<T> *&nodep, const T &x); virtual BSTNode<T>* remove_leftmost_child(BSTNode<T> *&nodep); }; Mtl Lourdes Cahuich 18
  • 19. Uso de Árboles Binarios de Búsqueda Esta es una clase del árbol binario de búsqueda que soporta operaciones para la inserción, acceso, y eliminación de elementos. También contiene un método que regresa el número de elementos actualmente almacenados en el árbol binario de búsqueda. Mtl Lourdes Cahuich 19
  • 20. BSTree La clase BSTree es una plantilla de clase. Esto nos permite crear instancias de la clase que pueden almacenar diferentes tipos de datos. Mtl Lourdes Cahuich 20
  • 21. BSTree Una consideración importante que debemos de tomar en cuenta antes de usar esta clase, es que internamente, algunos de los métodos de esta clase usan operadores ==, <, y > para desarrollar la tarea de inserción, acceso, y eliminación de elementos Mtl Lourdes Cahuich 21
  • 22. BSTree Por lo tanto, cualquier objeto que almacenemos en esta clase del árbol binario de búsqueda, debe proveer estos operadores Mtl Lourdes Cahuich 22
  • 23. template <class T> const T* const BSTree<T>::search_helper(BSTNode<T> *nodep, const T &x) { if (nodep == 0) { return NULL; } if (x == nodep->data) { return &(nodep->data); } if (x < nodep->data) { return search_helper(nodep->left, x); } else { return search_helper(nodep->right, x); } } Mtl Lourdes Cahuich 23
  • 24. BSTree -search La función search ofrece una forma de acceder elementos que existen en el árbol binario de búsqueda. Si el elemento solicitado no es encontrado en el árbol binario de búsqueda, la función regresa el apuntador nulo. Mtl Lourdes Cahuich 24
  • 25. BSTree -search De otra forma, la función regresa un apuntador constante a una versión constante del elemento Mtl Lourdes Cahuich 25
  • 26. BSTree -search El apuntador debe ser constante para prevenir que un usuario intente obtener acceso a otra porción de memoria usando la aritmética del apuntador. El elemento al que apunta el apuntador debe ser constante para asegurar que se mantenga la integridad del árbol. Mtl Lourdes Cahuich 26
  • 27. BSTree -search Cambiar el valor de un elemento almacenado podría posiblemente cambiar el lugar donde debe ser almacenado el elemento en el árbol binario de búsqueda. Mtl Lourdes Cahuich 27
  • 28. BSTree -search El proceso correcto para actualizar un elemento almacenado involucra primero remover el elemento, luego actualizar una copia del elemento, y después insertar la copia actualizada. Mtl Lourdes Cahuich 28
  • 30. Heaps Los heaps son árboles binarios usados a menudo para brindar un acceso eficiente al valor mínimo o máximo de un conjunto de valores. Un uso de esta funcionalidad es la implantación de una cola de prioridades Mtl Lourdes Cahuich 30
  • 31. Heaps Una cola de prioridades es una estructura de datos que se comporta de forma similar a una cola regular, debido a que ofrece los métodos push, pop, size, y empty. Mtl Lourdes Cahuich 31
  • 32. Heaps Las colas de prioridad se diferencian de las colas regulares debido a que el elemento pop que elimina una cola de prioridad, depende de una prioridad asignada, y no del principio quot;Primero-en- Entrar, Primero-en Salirquot;. Mtl Lourdes Cahuich 32
  • 33. Heaps Las colas de prioridad son usadas regularmente, STL provee el adaptador priority_queue Mtl Lourdes Cahuich 33