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....
CARACTERÍSTICAS GENERALES:
• Este tipo especial de colas tienen las mismas operaciones que las colas
, pero con la condici...
IMPLEMENTACIÓN
Hay 2 formas de implementación:
• Añadir un campo a cada nodo con su prioridad.
Resulta conveniente mantene...
TIPOS
• Colas de prioridades con ordenamiento ascendente: en
ellas los elementos se insertan de forma arbitraria, pero a l...
OPERACIONES
Las operaciones de las colas de prioridad son las mismas que las de
las colas genéricas:
• Crear: se crea la c...
EJEMPLO 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 ...
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 ...
¿PARA QUE SIRVE UN ÁRBOL BINARIO?
Como todos sabemos un árbol binario es una estructura de datos, y como todas, este
sirve...
¿CÓMO SE INGRESA LA INFORMACIÓN?
Como dije anteriormente, la información se ingresa de forma ordenada esto se resuelve de
...
• 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 o...
Arboles y Colas de Prioridad en Java
Arboles y Colas de Prioridad en Java
Arboles y Colas de Prioridad en Java
Próxima SlideShare
Cargando en…5
×

Arboles y Colas de Prioridad en Java

1.346 visualizaciones

Publicado el

Arboles y Colas de Prioridad en Java

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
1.346
En SlideShare
0
De insertados
0
Número de insertados
5
Acciones
Compartido
0
Descargas
17
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Arboles y Colas de Prioridad en Java

  1. 1. COLAS DE PRIORIDAD
  2. 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. 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. 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. 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. 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.
  7. 7. EJEMPLO EN JAVA
  8. 8. ARBOLES BINARIOS
  9. 9. 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:
  10. 10. 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.
  11. 11. ¿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
  12. 12. ¿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.
  13. 13. • 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:

×