Skip to content

Commit f9bf63c

Browse files
committed
#7 - python
1 parent 6a7c42b commit f9bf63c

File tree

1 file changed

+147
-0
lines changed

1 file changed

+147
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
### PILAS Y COLAS ###
2+
# Implementa los mecanismos de introducción y recuperación de elementos propios de las
3+
# pilas (stacks - LIFO) y las colas (queue - FIFO) utilizando una estructura de lista.
4+
5+
# PILAS - LIFO #
6+
7+
pila_list = ["Mario", "Olga", "Ana"]
8+
9+
# introduce un elemento al final de la pila
10+
pila_list.append("Harold")
11+
print(pila_list)
12+
13+
# elimina el último elemento introducido y lo guarda en una variable
14+
eliminado_pila = pila_list.pop()
15+
print(eliminado_pila)
16+
17+
# PILAS USANDO EL MÓDULO COLLETIONS
18+
from collections import deque # Módulo para manejar Pilas y Colas
19+
20+
pila = deque() # define la pila
21+
22+
# Agregar elementos a la pila
23+
pila.append("ESDLA")
24+
pila.append("Harry Poter")
25+
pila.append("La Torre Oscura")
26+
pila.append("El Guardian Entre El Centeno")
27+
28+
eliminado = pila.pop() # Elimina el ultimo elemento en ser agregado y lo guarda en una variable
29+
30+
print(f"\"{eliminado}\" ha sido eliminado de la pila.")
31+
print(pila)
32+
33+
# COLAS - FIFO #
34+
35+
cola_list = []
36+
37+
# Agregar elementos a la cola
38+
cola_list.append(10)
39+
cola_list.append(20)
40+
cola_list.append(30)
41+
cola_list.append(40)
42+
print(cola_list)
43+
44+
# elimina el primer elemento introducido y lo guarda en una variable
45+
eliminado_cola = cola_list.pop(0)
46+
47+
print(f"{eliminado_cola} ha sido eliminado de la cola")
48+
print(cola_list)
49+
50+
# COLAS USANDO EL MÓDULO COLLETIONS
51+
52+
cola = deque() # define la cola
53+
54+
# Introducir elementos a la cola con el Método deque()
55+
cola.append(10)
56+
cola.append(20)
57+
cola.append(30)
58+
cola.append(40)
59+
print(cola)
60+
61+
# Eliminar elemento y guardarlo en una variable
62+
eliminado_cola = cola.popleft()
63+
print(f"{eliminado_cola} fue eliminado de la cola")
64+
print(cola)
65+
66+
### EXTRA ###
67+
# Utilizando la implementación de pila y cadenas de texto, simula el mecanismo adelante/atrás
68+
# de un navegador web. Crea un programa en el que puedas navegar a una página o indicarle
69+
# que te quieres desplazar adelante o atrás, mostrando en cada caso el nombre de la web.
70+
# Las palabras "adelante", "atrás" desencadenan esta acción, el resto se interpreta como
71+
# el nombre de una nueva web.
72+
73+
web_pila = []
74+
aux_pila = []
75+
permanecer = True
76+
menu = '''\nElije una opción:
77+
# [i]ntroducir web
78+
# [a]trás
79+
# a[d]elante
80+
# [s]alir
81+
-> '''
82+
83+
def web():
84+
direccion = input("https://")
85+
web_pila.append(direccion)
86+
87+
def atras():
88+
if len(web_pila) < 1:
89+
pass
90+
else:
91+
borrado = web_pila.pop()
92+
aux_pila.append(borrado)
93+
94+
def adelante():
95+
if len(aux_pila) < 1:
96+
pass
97+
else:
98+
borrado = aux_pila.pop()
99+
web_pila.append(borrado)
100+
101+
while permanecer:
102+
opcion = input(menu)
103+
match opcion:
104+
case "i":
105+
web()
106+
case "a":
107+
atras()
108+
case "d":
109+
adelante()
110+
case "s":
111+
permanecer = False
112+
case _:
113+
print("Elije un opción valida")
114+
if len(web_pila) > 0:
115+
print(f"Estas en: {web_pila[-1]}")
116+
117+
print("Saliendo...")
118+
119+
'''Utilizando la implementación de cola y cadenas de texto, simula el mecanismo de una
120+
impresora compartida que recibe documentos y los imprime cuando así se le indica.
121+
La palabra "imprimir" imprime un elemento de la cola, el resto de palabras se
122+
interpretan como nombres de documentos.'''
123+
124+
cola_impresion = []
125+
continuo = True
126+
127+
def entrada_doc(documento):
128+
cola_impresion.append(documento)
129+
print(f"El documento \"{documento}\" se ha agregado a la cola de impresión")
130+
131+
def imprimir():
132+
if len(cola_impresion) > 0:
133+
doc_salida = cola_impresion.pop(0)
134+
print(f"Se está imprimiendo el documento \"{doc_salida}\"")
135+
else:
136+
print("La cola de impresión está vacía.")
137+
138+
while continuo:
139+
entrada = input("Esperando entrada -> ")
140+
141+
if entrada == "imprimir":
142+
imprimir()
143+
elif entrada == "salir":
144+
continuo = False
145+
print("Saliendo...")
146+
else:
147+
entrada_doc(entrada)

0 commit comments

Comments
 (0)