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