SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
Á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

Weitere ähnliche Inhalte

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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++
 

Kürzlich hochgeladen

Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
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
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
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
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 

Kürzlich hochgeladen (20)

Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
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
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
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
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 

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