1+ """
2+ Ejercicio
3+ """
4+
5+ # Pila/Stack (LIFO Last In First Out)
6+
7+ # Push
8+ stack = []
9+ stack .append (1 )
10+ stack .append (2 )
11+ stack .append (3 )
12+ print (stack )
13+
14+ # Pop
15+ stack_item = stack [len (stack ) - 1 ]
16+ del stack [len (stack ) - 1 ] # delete last item
17+ print (stack_item )
18+
19+ print (stack .pop ()) # delete last item
20+
21+ print (stack )
22+
23+ # Cola/Queue (FIFO First In First Out)
24+ queue = []
25+
26+ # enqueue (encolar)
27+ queue .append (1 )
28+ queue .append (2 )
29+ queue .append (3 )
30+
31+ # dequeue (desencolar)
32+ queue_item = queue [0 ]
33+ del queue [0 ]
34+
35+ print (queue .pop (0 ))
36+
37+ print (queue )
38+
39+ """
40+ Extra
41+ """
42+
43+ # Opciones
44+ def opciones ():
45+ print ("""1. Login\n 2. Profile\n 3. Atras\n 4. Salir""" )
46+
47+ # Web
48+ def web_navigation ():
49+ stack = [] # Inicialización pila vacía para rastrear navegación
50+ opciones () # Llamada función opciones
51+ while True :
52+ opcion = input ("Ingresa la opcion: " ) # Solicita al usuario la opción
53+ match opcion :
54+ case "1" :
55+ stack .append ("/Login/" ) # Agrega "/Login/" a la pila
56+ case "2" :
57+ stack .append ("/Login/Profile" ) # Agrega "/Login/Profile" a la pila
58+ case "3" :
59+ if len (stack ) > 0 :
60+ stack .pop () # Elimina el último elemento de la pila si no está vacía
61+ case "4" :
62+ print ("Saliendo del navegador." ) # Imprime mensaje y sale del bucle
63+ break
64+ case _:
65+ print ("Opcion no válida." ) # Imprime mensaje si no recibe una opción válida
66+
67+ if len (stack ) > 0 :
68+ print (stack [len (stack ) - 1 ]) # Imprime el último elemento de la pila
69+ else :
70+ print (f"Esta en Home. Quiere salir? Presione 4." ) # Mensaje cuando la pila está vacía
71+
72+
73+ web_navigation ()
74+
75+ def impresora_compartida ():
76+ queue = [] # Inicializa cola vacía para documentos
77+
78+ while True :
79+
80+ action = input ("Agrega un documento o selecciona imprimir/salir: " ) # Solicita acción del usuario
81+
82+ if action == "salir" :
83+ break # Sale del bucle
84+ elif action == "imprimir" :
85+ if len (queue ) == 0 :
86+ print (f"No hay elementos a imprimir." ) # Informa si no hay documentos en cola
87+
88+ if len (queue ) > 0 :
89+ elemento_0 = queue .pop (0 ) # Elimina y obtiene el documento
90+ print (f"Imprimiendo: { elemento_0 } " )
91+ else :
92+ queue .append (action ) # Agrega el documento a cola
93+
94+ print (f"Cola de impresión: { queue } " ) # Muestra el estado actual de cola
95+
96+
97+
98+ impresora_compartida ()
0 commit comments