SlideShare una empresa de Scribd logo
COLAS DE PRIORIDAD
Es una estructura de datos en la que los elementos se atienden
en el orden indicado por una prioridad asociada a cada uno. Si
varios elementos tienen la misma prioridad, se atenderán de
modo convencional según la posición que ocupen.
Una cola de prioridad soporta acceso y eliminación del
elemento de mayor prioridad: primero() y suprimir(). Puede
implementarse como una lista ordenada por prioridad, cuya
complejidad para el caso peor en la operación insertar es
O(N), un árbol binario de búsqueda, con complejidad media en
las operaciones primero() y suprimir(): O(log N), o un árbol
binario de búsqueda equilibrado.
CARACTERÍSTICAS GENERALES:
• Este tipo especial de colas tienen las mismas operaciones que las colas
, pero con la condición de que los elementos se atienden en orden de
prioridad.
• Ejemplos de la vida diaria serían la sala de urgencias de un hospital,
ya que los enfermos se van atendiendo en función de la gravedad de
su enfermedad.
• Entendiendo la prioridad como un valor numérico y asignando a altas
prioridades valores pequeños, las colas de prioridad nos permiten
añadir elementos en cualquier orden y recuperarlos de menor a
mayor.
IMPLEMENTACIÓN
Hay 2 formas de implementación:
• Añadir un campo a cada nodo con su prioridad.
Resulta conveniente mantener la cola ordenada por
orden de prioridad.
• Crear tantas colas como prioridades haya, y
almacenar cada elemento en su cola.
TIPOS
• Colas de prioridades con ordenamiento ascendente: en
ellas los elementos se insertan de forma arbitraria, pero a la
hora de extraerlos, se extrae el elemento de menor
prioridad.
• Colas de prioridades con ordenamiento descendente: son
iguales que la colas de prioridad con ordenamiento
ascendente, pero al extraer el elemento se extrae el de
mayor prioridad.
OPERACIONES
Las operaciones de las colas de prioridad son las mismas que las de
las colas genéricas:
• Crear: se crea la cola vacía.
• Añadir: se añade un elemento a la cola, con su correspondiente
prioridad.
• Eliminar: se elimina el elemento frontal de la cola.
• Frente: se devuelve el elemento frontal de la cola.
• Destruye: elimina la cola de memoria.
EJEMPLO EN JAVA
Arboles y Colas de Prioridad en Java
ARBOLES BINARIOS
INTRODUCCION
• Vamos a hablar primero un poco de que son los arboles
binarios; nos dice Wikipedia “Un árbol binario es un grafo
conexo, acíclico y no dirigido tal que el grado de cada vértice
no es mayor a 3″, eso significa que tenemos un grafo donde
cada nodo puede tener máximo 2 hijos ( o hojas ) y estas
hojas no pueden tener como hijos a cualquier otra hoja
anterior como podemos ver en la siguiente imagen:
EJEMPLO:
Podemos ver en la imagen como “Raíz” es padre de “Hoja 1″
y “Hoja 2″ y estas a su vez también son la raíz de las “Sub
hojas” y se vuelve un proceso recursivo hasta n cantidad de
hojas.
¿PARA QUE SIRVE UN ÁRBOL BINARIO?
Como todos sabemos un árbol binario es una estructura de datos, y como todas, este
sirve para organizar datos para facilitar su manipulación, ya sea el ingreso, borrado o
búsqueda de datos, y precisamente una de las principales ventajas de los árboles
binarios es la búsqueda, ya que como en muchos algoritmos de búsqueda necesitamos
tener la información ordenada y en nuestros árboles binarios precisamente los datos
van ingresando de forma ordenada.
Recorridos con los conocidos métodos recursivos:
• Inorden
• Postorden
• Preorden
¿CÓMO SE INGRESA LA INFORMACIÓN?
Como dije anteriormente, la información se ingresa de forma ordenada esto se resuelve de
forma muy sencilla con estos pasos:
• Se toma el dato a ingresar X
• Partiendo de la raíz preguntamos: Nodo == null ( o no existe ) ?
• En caso afirmativo X pasa a ocupar el lugar del nodo y ya hemos ingresado nuestro
primer dato.
• En caso negativo preguntamos: X < Nodo
• En caso de ser menor pasamos al Nodo de la IZQUIERDA del que acabamos de preguntar
y repetimos desde el paso 2 partiendo del Nodo al que acabamos de visitar
• En caso de ser mayor pasamos al Nodo de la DERECHA y tal cual hicimos con el caso
anterior repetimos desde el paso 2 partiendo de este nuevo Nodo.
• Nos daremos cuenta de que es un proceso RECURSIVO en el cual al final por más grande que
sea el árbol el dato a entrar ocupará un lugar, vamos a ejemplificar lo ya mencionado con una
imagen:
Arboles y Colas de Prioridad en Java
Arboles y Colas de Prioridad en Java

Más contenido relacionado

PPTX
Programación 3: tablas de dispersión
PPTX
Colas estáticas. IESIT
PPTX
Java pilas (Stacks) y colas (Queues)
PPTX
Colas en programacion
DOCX
Aplicaciones de los árboles y grafos
PPTX
Ordenamiento QuickSort
PPSX
Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)
Programación 3: tablas de dispersión
Colas estáticas. IESIT
Java pilas (Stacks) y colas (Queues)
Colas en programacion
Aplicaciones de los árboles y grafos
Ordenamiento QuickSort
Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)

La actualidad más candente (20)

PPT
Notación infija postfija
DOCX
Fundamentos de programación librería string C++
PPTX
Complejidad Algoritmica
PDF
Algoritmo de ordenamiento: Heap Sort
PPTX
Bases de Datos No Relacionales (NoSQL)
PPTX
Recursividad directa e indirecta
PPTX
Algoritmo de quicksort
PPTX
Programación 3: listas enlazadas
PPTX
Heap sort (Monticulos)
PPTX
Metodos de ordenamiento
PDF
Grafos Ponderados
PPTX
10 Polimorfismo
PPTX
Estructura de Datos - Unidad 5 metodos de ordenamiento
PPTX
Del Modelo Entidad-Relación al Modelo relacional
PDF
Diagramas Analisis
PPTX
Ordenamiento QuickSort
PPTX
Insercion directa
PDF
Estructuras de datos lineales
PPTX
Tecnicas de rotacion en arboles balanceados
PPTX
Tipos de listas en estructura de datos
Notación infija postfija
Fundamentos de programación librería string C++
Complejidad Algoritmica
Algoritmo de ordenamiento: Heap Sort
Bases de Datos No Relacionales (NoSQL)
Recursividad directa e indirecta
Algoritmo de quicksort
Programación 3: listas enlazadas
Heap sort (Monticulos)
Metodos de ordenamiento
Grafos Ponderados
10 Polimorfismo
Estructura de Datos - Unidad 5 metodos de ordenamiento
Del Modelo Entidad-Relación al Modelo relacional
Diagramas Analisis
Ordenamiento QuickSort
Insercion directa
Estructuras de datos lineales
Tecnicas de rotacion en arboles balanceados
Tipos de listas en estructura de datos
Publicidad

Similar a Arboles y Colas de Prioridad en Java (20)

PPTX
Colas de prioridad
PDF
Pqueues
PDF
Pqueues
PPTX
Ordenamiento con árbol binario
PPTX
Algoritmo por seleccion
PPT
binarySearchTree.ppt
PPT
Heap sort
PPT
Heap sort2
PDF
DECLARACION DE ARBOLES.pdf
PPT
Arbol b ASIRB
PDF
estructura de árbol.pdf JOSE GABRIEL LUCENA
PPTX
11 colas prioridad1t2018
PPT
Arboles Binarios
PPTX
Arboles binarios
PDF
Informe de Arboles.pdf
PPTX
Programación 3: árboles binarios y ordenados
DOCX
Qué son las colas de prioridad
PDF
Tema6-Arboles.pdf
PPTX
Pilas y colas
PPTX
Estructura de datos Pilas, Colas y Listas.
Colas de prioridad
Pqueues
Pqueues
Ordenamiento con árbol binario
Algoritmo por seleccion
binarySearchTree.ppt
Heap sort
Heap sort2
DECLARACION DE ARBOLES.pdf
Arbol b ASIRB
estructura de árbol.pdf JOSE GABRIEL LUCENA
11 colas prioridad1t2018
Arboles Binarios
Arboles binarios
Informe de Arboles.pdf
Programación 3: árboles binarios y ordenados
Qué son las colas de prioridad
Tema6-Arboles.pdf
Pilas y colas
Estructura de datos Pilas, Colas y Listas.
Publicidad

Más de LupitaOMG Garmendia (13)

PPTX
Estrategia de comunicación
PPTX
Visión Sistémica de la Empresa Dell Inc.
PPTX
Kingston team final - Venta de Casas
PPTX
El mundo de amy
PPTX
Habilidades del pensamiento
PPTX
Pensamiento critico
PPTX
Habilidad de Concluir
PPTX
Importancia de las Habilidades del pensamiento
PPTX
Programa en Java Numeros Primos
PPTX
Programa en java con el Metodo de la burbuja
PPTX
Programa en java que calcule el radio y Superficie
PPTX
Funciones en C
PPTX
Arreglos en java
Estrategia de comunicación
Visión Sistémica de la Empresa Dell Inc.
Kingston team final - Venta de Casas
El mundo de amy
Habilidades del pensamiento
Pensamiento critico
Habilidad de Concluir
Importancia de las Habilidades del pensamiento
Programa en Java Numeros Primos
Programa en java con el Metodo de la burbuja
Programa en java que calcule el radio y Superficie
Funciones en C
Arreglos en java

Último (20)

PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
PDF
2.0 Introduccion a processing, y como obtenerlo
PDF
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PDF
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
DOCX
PLANES DE área ciencias naturales y aplicadas
PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
DOCX
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
DOCX
V UNIDAD - PRIMER GRADO. del mes de agosto
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
2.0 Introduccion a processing, y como obtenerlo
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
DI, TEA, TDAH.pdf guía se secuencias didacticas
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
PLANES DE área ciencias naturales y aplicadas
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
Fundamentos_Educacion_a_Distancia_ABC.pdf
PLAN DE CASTELLANO 2021 actualizado a la normativa
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
V UNIDAD - PRIMER GRADO. del mes de agosto
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf

Arboles y Colas de Prioridad en Java

  • 2. Es una estructura de datos en la que los elementos se atienden en el orden indicado por una prioridad asociada a cada uno. Si varios elementos tienen la misma prioridad, se atenderán de modo convencional según la posición que ocupen. Una cola de prioridad soporta acceso y eliminación del elemento de mayor prioridad: primero() y suprimir(). Puede implementarse como una lista ordenada por prioridad, cuya complejidad para el caso peor en la operación insertar es O(N), un árbol binario de búsqueda, con complejidad media en las operaciones primero() y suprimir(): O(log N), o un árbol binario de búsqueda equilibrado.
  • 3. CARACTERÍSTICAS GENERALES: • Este tipo especial de colas tienen las mismas operaciones que las colas , pero con la condición de que los elementos se atienden en orden de prioridad. • Ejemplos de la vida diaria serían la sala de urgencias de un hospital, ya que los enfermos se van atendiendo en función de la gravedad de su enfermedad. • Entendiendo la prioridad como un valor numérico y asignando a altas prioridades valores pequeños, las colas de prioridad nos permiten añadir elementos en cualquier orden y recuperarlos de menor a mayor.
  • 4. IMPLEMENTACIÓN Hay 2 formas de implementación: • Añadir un campo a cada nodo con su prioridad. Resulta conveniente mantener la cola ordenada por orden de prioridad. • Crear tantas colas como prioridades haya, y almacenar cada elemento en su cola.
  • 5. TIPOS • Colas de prioridades con ordenamiento ascendente: en ellas los elementos se insertan de forma arbitraria, pero a la hora de extraerlos, se extrae el elemento de menor prioridad. • Colas de prioridades con ordenamiento descendente: son iguales que la colas de prioridad con ordenamiento ascendente, pero al extraer el elemento se extrae el de mayor prioridad.
  • 6. OPERACIONES Las operaciones de las colas de prioridad son las mismas que las de las colas genéricas: • Crear: se crea la cola vacía. • Añadir: se añade un elemento a la cola, con su correspondiente prioridad. • Eliminar: se elimina el elemento frontal de la cola. • Frente: se devuelve el elemento frontal de la cola. • Destruye: elimina la cola de memoria.
  • 10. INTRODUCCION • Vamos a hablar primero un poco de que son los arboles binarios; nos dice Wikipedia “Un árbol binario es un grafo conexo, acíclico y no dirigido tal que el grado de cada vértice no es mayor a 3″, eso significa que tenemos un grafo donde cada nodo puede tener máximo 2 hijos ( o hojas ) y estas hojas no pueden tener como hijos a cualquier otra hoja anterior como podemos ver en la siguiente imagen:
  • 11. EJEMPLO: Podemos ver en la imagen como “Raíz” es padre de “Hoja 1″ y “Hoja 2″ y estas a su vez también son la raíz de las “Sub hojas” y se vuelve un proceso recursivo hasta n cantidad de hojas.
  • 12. ¿PARA QUE SIRVE UN ÁRBOL BINARIO? Como todos sabemos un árbol binario es una estructura de datos, y como todas, este sirve para organizar datos para facilitar su manipulación, ya sea el ingreso, borrado o búsqueda de datos, y precisamente una de las principales ventajas de los árboles binarios es la búsqueda, ya que como en muchos algoritmos de búsqueda necesitamos tener la información ordenada y en nuestros árboles binarios precisamente los datos van ingresando de forma ordenada. Recorridos con los conocidos métodos recursivos: • Inorden • Postorden • Preorden
  • 13. ¿CÓMO SE INGRESA LA INFORMACIÓN? Como dije anteriormente, la información se ingresa de forma ordenada esto se resuelve de forma muy sencilla con estos pasos: • Se toma el dato a ingresar X • Partiendo de la raíz preguntamos: Nodo == null ( o no existe ) ? • En caso afirmativo X pasa a ocupar el lugar del nodo y ya hemos ingresado nuestro primer dato. • En caso negativo preguntamos: X < Nodo • En caso de ser menor pasamos al Nodo de la IZQUIERDA del que acabamos de preguntar y repetimos desde el paso 2 partiendo del Nodo al que acabamos de visitar • En caso de ser mayor pasamos al Nodo de la DERECHA y tal cual hicimos con el caso anterior repetimos desde el paso 2 partiendo de este nuevo Nodo.
  • 14. • Nos daremos cuenta de que es un proceso RECURSIVO en el cual al final por más grande que sea el árbol el dato a entrar ocupará un lugar, vamos a ejemplificar lo ya mencionado con una imagen: