forked from mouredev/roadmap-retos-programacion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgaros01.py
83 lines (55 loc) · 1.61 KB
/
garos01.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# Implementación de una pila (stack) utilizando una lista
def crear_pila():
return []
def pila_esta_vacia(pila):
return len(pila) == 0
def apilar(pila, elemento):
pila.append(elemento)
def desapilar(pila):
if not pila_esta_vacia(pila):
return pila.pop()
else:
print("La pila está vacía.")
# Implementación de una cola (queue) utilizando una lista
def crear_cola():
return []
def cola_esta_vacia(cola):
return len(cola) == 0
def encolar(cola, elemento):
cola.insert(0, elemento)
def desencolar(cola):
if not cola_esta_vacia(cola):
return cola.pop()
else:
print("La cola está vacía.")
# Ejemplo de uso
pila = crear_pila()
apilar(pila, 1)
apilar(pila, 2)
apilar(pila, 3)
print("Elementos de la pila:")
while not pila_esta_vacia(pila):
print(desapilar(pila))
cola = crear_cola()
encolar(cola, 1)
encolar(cola, 2)
encolar(cola, 3)
print("\nElementos de la cola:")
while not cola_esta_vacia(cola):
print(desencolar(cola))
# Ejercicio extra
from collections import deque
def simular_impresora():
cola_documentos = deque()
while True:
comando = input("Ingrese un comando ('imprimir' o el nombre de un documento): ")
if comando == "imprimir":
if cola_documentos:
documento_a_imprimir = cola_documentos.popleft()
print(f"Imprimir documento: {documento_a_imprimir}")
else:
print("No hay documentos para imprimir.")
else:
cola_documentos.append(comando)
print(f"Añadir documento a la cola: {comando}")
simular_impresora()