Universidad Tecnológica y Politécnica de la Sierra de Guerrero
Héctor Ramsés López Abarca
Matricula: 18311101
Grupo: 2
Materia: Estructura de datos
Maestro: Osvaldo González Díaz
Unidad: IV. Pilas y Colas
Tlacotepec Guerrero a 2 de Diciembre del 2023
Definiciones de pilas y colas
Las pilas y colas son estructuras de datos fundamentales en ciencias de la computación y
programación. Ambas se utilizan para organizar y gestionar datos, pero difieren en la forma en que
se accede y se eliminan elementos.
Pilas:
Definición: Una pila es una estructura de datos lineal que sigue el principio de "último en entrar,
primero en salir" (LIFO, por sus siglas en inglés). Esto significa que el último elemento que se añade
a la pila es el primero en ser eliminado.
Características:
1. Operaciones Principales:
Push (Empujar): Añadir un elemento a la pila.
Pop (Sacar): Eliminar el elemento más recientemente añadido.
2. Restricción de Acceso:
Solo se puede acceder al elemento en la cima de la pila.
3. Ejemplo Cotidiano:
Un ejemplo común es una pila de platos en una cocina. El último plato añadido es
el primero en ser utilizado.
Colas:
Definición: Una cola es una estructura de datos lineal que sigue el principio de "primero en entrar,
primero en salir" (FIFO, por sus siglas en inglés). Esto significa que el primer elemento que se
añade a la cola es el primero en ser eliminado.
Características:
1. Operaciones Principales:
Enqueue (Encolar): Añadir un elemento al final de la cola.
Dequeue (Desencolar): Eliminar el elemento del frente de la cola.
2. Restricción de Acceso:
Se accede al elemento más antiguo en la cola.
3. Ejemplo Cotidiano:
Una cola en una tienda, donde el primer cliente que llega es el primero en ser
atendido.
Ambas estructuras son ampliamente utilizadas en programación para resolver una variedad de
problemas. La elección entre una pila y una cola depende de la lógica específica requerida para un
algoritmo o tarea.
Operaciones con pilas y colas
Operaciones con Pilas:
1. Push (Empujar):
Descripción: Añade un elemento a la pila.
Elementos del lenguaje orientado a objetos: Método push(elemento).
2. Pop (Sacar):
Descripción: Elimina el elemento más reciente añadido a la pila.
Elementos del lenguaje orientado a objetos: Método pop().
3. Top (Cima):
Descripción: Obtiene el elemento en la cima de la pila sin eliminarlo.
Elementos del lenguaje orientado a objetos: Método top() o peek().
4. isEmpty (Está Vacía):
Descripción: Verifica si la pila está vacía.
Elementos del lenguaje orientado a objetos: Método isEmpty().
Operaciones con Colas:
1. Enqueue (Encolar):
Descripción: Añade un elemento al final de la cola.
Elementos del lenguaje orientado a objetos: Método enqueue(elemento).
2. Dequeue (Desencolar):
Descripción: Elimina el elemento del frente de la cola.
Elementos del lenguaje orientado a objetos: Método dequeue().
3. Front (Frente):
Descripción: Obtiene el elemento en el frente de la cola sin eliminarlo.
Elementos del lenguaje orientado a objetos: Método front() o peek().
4. isEmpty (Está Vacía):
Descripción: Verifica si la cola está vacía.
Elementos del lenguaje orientado a objetos: Método isEmpty().
Ejemplo en un Lenguaje Orientado a Objetos (como Python):
Pila:
class Pila:
def __init__(self):
[Link] = []
def push(self, elemento):
[Link](elemento)
def pop(self):
if not [Link]():
return [Link]()
def top(self):
if not [Link]():
return [Link][-1]
def isEmpty(self):
return len([Link]) == 0
cola:
class Cola:
def __init__(self):
[Link] = []
def enqueue(self, elemento):
[Link](elemento)
def dequeue(self):
if not [Link]():
return [Link](0)
def front(self):
if not [Link]():
return [Link][0]
def isEmpty(self):
return len([Link]) == 0
uso de las estructuras
# Uso de Pila
pila_ejemplo = Pila()
pila_ejemplo.push(1)
pila_ejemplo.push(2)
print(pila_ejemplo.top()) # Salida: 2
print(pila_ejemplo.pop()) # Salida: 2
# Uso de Cola
cola_ejemplo = Cola()
cola_ejemplo.enqueue(1)
cola_ejemplo.enqueue(2)
print(cola_ejemplo.front()) # Salida: 1
print(cola_ejemplo.dequeue()) # Salida: 1