Skip to content

Commit 54822ec

Browse files
authored
Merge pull request mouredev#6581 from pwrxman/main
#7 - Python
2 parents 2f4497d + d9912ee commit 54822ec

File tree

1 file changed

+149
-0
lines changed

1 file changed

+149
-0
lines changed
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
"""
2+
* EJERCICIO:
3+
* Implementa los mecanismos de introducción y recuperación de elementos propios de las
4+
* pilas (stacks - LIFO) y las colas (queue - FIFO) utilizando una estructura de array
5+
* o lista (dependiendo de las posibilidades de tu lenguaje).
6+
*
7+
"""
8+
9+
# # PILAS (STACKS) LIFO
10+
11+
# agregar elemento a la pila o la cola
12+
# def addelem(elem: str, stack: list):
13+
# print("añadir elemento")
14+
# stack.append(elem)
15+
16+
# # retirar elemento de la pila
17+
# def pop(stack: list):
18+
# print("retirar elemento de la Pila")
19+
# if not stackempty(stack):
20+
# stack.pop()
21+
22+
# # validar si pila o cola vacia
23+
def stackempty(stack: list) -> bool:
24+
if len(stack) == 0:
25+
print("Lista Vacia")
26+
return True
27+
else:
28+
return False
29+
30+
31+
# # COLAS (QUEUES) FIFO
32+
33+
# # retirar elemento de la cola
34+
# def dequeue(stack: list):
35+
# print("retirar elemento de la Cola")
36+
# if not stackempty(stack):
37+
# stack.pop(0)
38+
39+
# stack = list()
40+
# queue = list()
41+
42+
# while True:
43+
# print("PILAS")
44+
# print("\t1 - Agregar elemento en pila")
45+
# print("\t2 - Eliminar elemento de pila")
46+
# print("\t3 - Mostrar pila\n")
47+
# print("COLAS")
48+
# print("\t4 - Agregar elemento en cola")
49+
# print("\t5 - Eliminar elemento de cola")
50+
# print("\t6 - Mostrar cola\n")
51+
# print("q - Terminar")
52+
53+
# action= input("Que desea hacer? ")
54+
# match action:
55+
# case '1':
56+
# element=input("Cual es el elemento que desea añadir a la list? ")
57+
# addelem(element, stack)
58+
# case '2':
59+
# pop(stack)
60+
# case '3':
61+
# print(f"Pila -> {stack}")
62+
# case '4':
63+
# element=input("Cual es el elemento que desea añadir a la cola? ")
64+
# addelem(element, queue)
65+
# case '5':
66+
# dequeue(queue)
67+
# case '6':
68+
# print(f"Cola -> {queue}")
69+
# case 'q':
70+
# print("Hasta la vista...")
71+
# break
72+
73+
74+
"""
75+
* DIFICULTAD EXTRA (opcional):
76+
* - Utilizando la implementación de pila y cadenas de texto, simula el mecanismo adelante/atrás
77+
* de un navegador web. Crea un programa en el que puedas navegar a una página o indicarle
78+
* que te quieres desplazar adelante o atrás, mostrando en cada caso el nombre de la web.
79+
* Las palabras "adelante", "atrás" desencadenan esta acción, el resto se interpreta como
80+
* el nombre de una nueva web.
81+
82+
* - Utilizando la implementación de cola y cadenas de texto, simula el mecanismo de una
83+
* impresora compartida que recibe documentos y los imprime cuando así se le indica.
84+
* La palabra "imprimir" imprime un elemento de la cola, el resto de palabras se
85+
* interpretan como nombres de documentos.
86+
"""
87+
88+
89+
90+
91+
# agregar elemento a la pila o la cola
92+
def add_wj(web: str, stack: list):
93+
print(f"Has añadido un nuevo elemento {web}")
94+
stack.append(web)
95+
96+
# retirar elemento de la pila
97+
def pop_web(stack: list):
98+
print("Regresando...")
99+
if not stackempty(stack):
100+
print(f"has navegado a la página {stack_web[len(stack_web)-2]}")
101+
stack.pop()
102+
103+
104+
105+
# COLAS (QUEUES) FIFO
106+
107+
# imprimir elemento de la cola
108+
def job_queue(stack: list):
109+
print("imprimir job de la Cola")
110+
if not stackempty(stack):
111+
stack.pop(0)
112+
113+
stack_web = list()
114+
print_queue = list()
115+
116+
while True:
117+
print("PILAS")
118+
print("\t1 - Agregar página web.")
119+
print("\t2 - Avanzar.?????")
120+
print("\t3 - Regresar.")
121+
print("\t4 - Mostrar páginas fr navegación.\n")
122+
123+
print("COLAS")
124+
print("\t5 - Agregar job en cola")
125+
print("\t6 - Imprimir job de la cola")
126+
print("\t7 - Mostrar cola de impresion\n")
127+
print("q - Terminar")
128+
129+
action= input("Que desea hacer? ")
130+
match action:
131+
case '1':
132+
element=input("Cual es la página a la que desea navegar? ")
133+
add_wj(element, stack_web)
134+
case '2':
135+
print("No se puede implementar con listas en python")
136+
case '3':
137+
pop_web(stack_web)
138+
case '4':
139+
print(f"Páginas -> {stack_web}")
140+
case '5':
141+
element=input("Cual es el job de impresión que desea añadir a la cola? ")
142+
add_wj(element, print_queue)
143+
case '6':
144+
job_queue(print_queue)
145+
case '7':
146+
print(f"Cola -> {print_queue}")
147+
case 'q':
148+
print("Hasta la vista...")
149+
break

0 commit comments

Comments
 (0)