Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Slides Colas y Pilas by Juan Carlos Mantilla Gómez is licensed under a Creative Commons Reconocimiento-
NoComercial-SinObraDerivada 4.0 Internacional License.
Puede hallar permisos más allá de los concedidos con esta licencia en https://savio.utb.edu.co/
Qué es una estructura COLA
• Es un tipo especial de estructura de datos lineal ( LISTA)
• Método de acceso F.I.FO. ( First In First Out)
ELIMINACIÓN DE
ESTRUCTURA DE DATOS INSERCIÓN DE DATOS ACCESO A ELEMENTOS
ELEMENTOS
Solo se accede al
Pilas Por el extremo Tope Por el extremo Tope elemento que ocupe el
extremo Tope
Solo se accede al
Colas Por el extremo Final Por el extremo Frente elemento que ocupe el
extremo Frente
COLA:
• Estructura lineal finita que opera con filosofía F.I.FO.
(P.E.P.S)
• Secuencia de elementos e1, e2, e3 …en ( n>=0 )
• Si n = 0 la cola está vacía
Principales operaciones
VACÍA
UTILIDAD: verifica si una determinada cola está vacía o no.
ENTRADAS: la cola que se va a verificar.
SALIDAS: valor booleano que indique si la cola está vacía o no.
PRECONDICIÓN: la cola que se desea verificar existe.
POSTCONDICIÓN: ninguna, la estructura no se modifica.
LLENA
UTILIDAD: verifica si una cola determinada se encuentra llena o no.
ENTRADAS: la cola que se va a verificar.
SALIDAS: valor booleano que indique si la cola está llena o no.
PRECONDICIÓN: la cola por verificar existe.
POSTCONDICIÓN: ninguna, la estructura no se modifica.
ENCOLAR (INSERTAR) ELEMENTO (INSERT)
agrega un elemento a una cola. Debe quedar a continuación del
UTILIDAD: último
ENTRADAS: la fila a la que se agregará el elemento y el elemento por agregar.
SALIDAS: la fila con un elemento adicional.
PRECONDICIÓN: la fila está creada y no está llena.
la fila queda con un elemento adicional, agregado por el extremo del
POSTCONDICIÓN: final de la fila.
LLENA
UTILIDAD: verifica si una fila determinada se encuentra llena o no.
ENTRADAS: la fila que se va a verificar.
SALIDAS: valor booleano que indique si la fila está llena o no.
PRECONDICIÓN: la fila por verificar existe
POSTCONDICIÓN: ninguna, la estructura no se modifica
Como representar una cola
Utilizando memoria estática
a. Utilizando un arreglo unidimensional.
– Requiere tener una variable que apunte al final de la
cola
– Al eliminar un elemento los restantes deben ser
“movidos” una posición hacia el frente.
b. Usando un arreglo lineal con dos apuntadores (frente
y final)
c. Usando un arreglo circular con 2 apuntadores.
Como representar una cola
Utilizando memoria dinámica
Frente Último
Prioridad 1
Y X
Prioridad 3
A
Prioridad 4
B
PILAS ( STACKS)
Que es una PILA o STACK
• conjunto ordenado de objetos los cuales pueden
agregarse o extraerse (uno a la vez) por un solo lado.
• Estructura de datos lineal, finita
• Se utiliza conforme a la filosofía U.E.P.S : El Último que
Entró en la pila es el Primero en Salir. (También se usa
el término L.I.F.O Last Input First Output)
• Se debe llevar registro de dos elementos : El del fondo
(Bottom) y el del tope (Top)
TOP
TDA PILA
DESAPILAR(POP)
Elimina un elemento de la pila
ENTRADA: Una Pila de la que se quitará un elemento
La pila con un elemento menos. El elemento que
SALIDA: se retiró de la pila
PRECONDICIÓN: La pila no debe estar vacía
POSTCONDICIÓN: La pila queda con un elemento menos
Algunas posibles operaciones
VACIA
Verifica si una pila está vacía o no
ENTRADA: Una Pila a ser verificada
Verdadero si la pila no contiene elementos. Falso,
SALIDA: de lo contrario
PRECONDICIÓN: La Pila a verificar existe
POSTCONDICIÓN: Ninguna
LLENA
Verifica si una pila está llena o no
ENTRADA: Una Pila a ser verificada
SALIDA: Verdadero si la pila está llena.
PRECONDICIÓN: La Pila a verificar existe
POSTCONDICIÓN: Ninguna
Taller de clase
• A partir de la definición de lista enlazada implemente
una estructura de tipo COLA, incluyendo las siguientes
operaciones:
• ENCOLAR (agregar un nodo al final)
• DESENCOLAR (eliminar el elemento del frente)
• LISTAR ( desplegar todos los nodos de la cola
• Cada nodo debe almacenar el NOMBRE de un proceso (
string de 10 caracteres)