1. República Bolivariana De Venezuela
Ministerio Del Poder Popular Para La Educación
Instituto Universitario De Tecnología “Juan Pablo Pérez
Alfonzo”
IUTEPAL PUERTO CABELLO
Integrante: Enmanuel Calvete C.I 24641390
Puerto Cabello, de Diciembre de 2015
2. “Primero en entrar, primero en salir”, en inglés first in,
first out (FIFO), es un concepto utilizado en estructuras de
datos, contabilidad de costes y teoría de colas. Guarda analogía
con las personas que esperan en una cola y van siendo
atendidas en el orden en que llegaron, es decir, que ‘la primera
persona que entra es la primera persona que sale’.
También se le denomina «primero en llegar, primero en ser
atendido», en inglés first come, first served (FCFS).
First in, first out
3. En informática, FIFO se utiliza en
estructuras de datos para
implementar colas. La
implementación puede efectuarse
con ayuda de arreglos o vectores, o
bien mediante el uso
de punteros y asignación dinámica
de memoria.
4. Si se implementa mediante
vectores, el número máximo de
elementos que puede
almacenar FIFO está limitado al
que se haya establecido en el
código del programa antes de la
compilación (cola estática) o
durante su ejecución (cola
pseudoestática o dinámica).
Sea cual sea la opción
elegida, el número de
elementos que podrá almacenar
la cola quedará determinado
durante toda la ejecución del
programa. Así, el sistema debe
reservar el tamaño de memoria
necesario para acoger todos los
datos, sea cual sea el número de
elementos usados.
5. En algunas aplicaciones, esto supone un problema ya que
puede desconocerse el número de elementos a contener en
la cola. La sencilla solución de reservar más memoria de la
que se supone que se necesitará, puede conducir a un
despilfarro de la memoria (la cola puede que esté llena,
aprovechando toda la memoria reservada; o bien, nunca
terminar de llenarse, ocupando recursos innecesarios en
memoria).
6.
7. Sin embargo, si se usa asignación dinámica de memoria, el número
máximo no está declarado en tiempo de compilación sino en tiempo de
ejecución, es decir, se reserva memoria a medida que se necesite expandir el
tamaño de la cola (adaptándose al tamaño necesario en cada momento en
función de los elementos que hay en la cola), haciendo un mejor uso de la
memoria disponible.
Uno de los usos de las colas es la exploración ‘en anchura’ de un árbol
binario de búsqueda. Otro uso típico de las colas, es la gestión de descargas
de una aplicación P2P
8. Un árbol binario de
búsqueda también llamados BST
(acrónimo
del inglés Binary Search Tree) es
un tipo particular de árbol
binario que presenta
una estructura de datos en forma
de árbol usada en informática.
Una red peer-to-peer, red de pares, red
entre iguales o red entre pares (P2P, por sus
siglas en inglés) es una red de
computadoras en la que todos o algunos
aspectos funcionan
sin clientes ni servidores fijos, sino una serie
de nodos que se comportan como iguales
entre sí. Es decir, actúan simultáneamente
como clientes y servidores respecto a los
demás nodos de la red. Las redes P2P
permiten el intercambio directo de
información, en cualquier formato, entre los
ordenadores interconectados.
9. La particularidad de una estructura de datos
de cola es el hecho de que sólo podemos
acceder al primer y al último elemento de la
estructura. Así mismo, los elementos sólo se
pueden eliminar por el principio y sólo se
pueden añadir por el final de la cola.
Ejemplos de colas en la vida real serían:
personas comprando en un supermercado,
esperando para entrar a ver un partido de
béisbol, esperando en el cine para ver una
película, una pequeña peluquería, etc. La idea
esencial es que son todos líneas de espera.
10.
11. En caso de estar
vacía, borrar un
elemento sería
imposible hasta que
no se añade un nuevo
elemento. A la hora de
añadir un elemento
podríamos darle una
mayor importancia a
unos elementos que a
otros (un cargo VIP) y
para ello se crea un
tipo de cola especial
que es la cola de
prioridad.
Una cola de
prioridades 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.
12. 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.
Características generales
13. 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.
14. Ejemplos de colas en la vida real serían: personas comprando en un
supermercado, esperando para entrar a ver un partido de béisbol, esperando
en el cine para ver una película, una pequeña peluquería, etc. La idea
esencial es que son todos líneas de espera.
Ejemplos