1+ #################### PILAS Y COLAS #########################
2+
3+ ## PILAS
4+ my_stack = [i for i in range (1 ,11 )]
5+
6+ print (my_stack )
7+
8+ # Añadir un elemento a la pila
9+ my_stack .append (11 )
10+ print (my_stack )
11+
12+ # Eliminar una elemento de la pila
13+ my_stack .pop ()
14+
15+ print (my_stack )
16+
17+ # Obtención del elemento correspondiente a procesar en una pila
18+ print (my_stack [len (my_stack ) - 1 ])
19+
20+ # Simulación de los procesos de una pila
21+ for proccess in my_stack [::- 1 ]:
22+ print (f"Procesando el proceso { proccess } " )
23+
24+ print ("La pila de procesos ha finalizado" )
25+
26+ ## FIN PILAS
27+
28+ ## COLAS (FIFO)
29+
30+ my_queue = [i for i in range (1 , 11 )]
31+ print (my_queue )
32+
33+ # Inserción de un elemento en la cola
34+ my_queue .append (11 )
35+
36+ print (my_queue )
37+
38+ # Extracción de un elemento de la cola
39+ my_queue .pop (0 )
40+
41+ print (my_queue )
42+
43+ # Procesando todos los elementos de una cola
44+ for proccess in my_queue :
45+ print (f"Procesando el proceso { proccess } " )
46+ print ("La pila de procesos ha finalizado" )
47+
48+ ## FIN COLAS
49+
50+ #################### FIN PILAS Y COLAS #########################
51+
52+
53+ #################### EXTRA #########################
54+
55+ # Implementación navegador web
56+ my_websites = ["blank page" , "www.marca.com" , "www.as.com" , "www.elmundo.es" ]
57+ position = 0
58+ end = False
59+ while not end :
60+ action = input ("Indica que quieres realizar (adelante/atras/web): " )
61+ if action .lower () == "atras" :
62+ print (f'Navegando a { my_websites [position - 1 ] if position > 0 else my_websites [0 ]} ' )
63+ position -= 1 if position > 0 else 0
64+ elif action .lower () == "adelante" :
65+ print (f'Navegando a { my_websites [position + 1 ] if position < len (my_websites ) else my_websites [len (my_websites )]} ' )
66+ position += 1 if position < len (my_websites ) - 1 else len (my_websites ) - 1
67+ elif action .lower () == 'salir' :
68+ end = True
69+ print (f'Historial de navegación: { my_websites } ' )
70+ print ('Cerrando navegador - Fin de programa' )
71+ else : # Añadimos una nueva web (en este caso en la posición + 1 de donde nos encontremos)
72+ my_websites .insert (position + 1 , action .lower ())
73+
74+
75+ # Implementación cola de impresión
76+
77+ my_printer_jobs = ["Doc1" , "Doc2" , "Doc3" ]
78+ end = False
79+
80+ while not end :
81+ action = input ("Indica la acción a realizar (imprimir/nombre documento/salir): " )
82+
83+ if action .lower () == "imprimir" :
84+ print (f'Imprimiendo { my_printer_jobs .pop (0 )} ' )
85+ print (f'Quedan pendientes estos trabajos: { my_printer_jobs } ' )
86+ elif action .lower () == "salir" :
87+ end = True
88+ print (f"Saliendo del spool de impresión, quedan pendientes { len (my_printer_jobs )} documentos por imprimir: { my_printer_jobs } " )
89+ else :
90+ my_printer_jobs .append (action .lower ())
91+ print (f'El documento { action .lower ()} se ha añadido a la cola de impresión quedando así: { my_printer_jobs } ' )
92+
93+ #################### FIN EXTRA #########################
0 commit comments