forked from mouredev/roadmap-retos-programacion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjavierjoyera.py
98 lines (82 loc) · 2.67 KB
/
javierjoyera.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
class Pila:
def __init__(self):
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
if not self.is_empty():
return self.items.pop()
else:
return "La pila está vacía"
def is_empty(self):
return len (self.items) == 0
def is_the_top(self):
if not self.is_empty():
return self.items[-1]
else:
return "La pila está vacía"
class Cola:
def __init__(self):
self.items = []
def enqueue(self, item):
self.items.append(item)
def dequeue(self):
if not self.is_empty():
return self.items.pop(0)
else:
return "La cola está vacía"
def is_empty(self):
return len(self.items) == 0
class NavegadorWeb:
def __init__(self):
self.historial = Pila()
self.adelante = Pila()
def ver_pagina(self, pagina):
print("Estás viendo la página: %s" % pagina)
self.historial.push(pagina)
self.adelante = Pila()
def retroceder(self):
if self.historial.is_empty():
print("No hay páginas para retroceder")
else:
pagina = self.historial.pop()
self.adelante.push(pagina)
if self.historial.is_empty():
print("Estás en la página de inicio")
else:
print("Estás viendo la página: %s" % self.historial.is_the_top())
def ir_adelante(self):
if self.adelante.is_empty():
print("No hay páginas hacia adelante")
else:
pagina = self.adelante.pop()
self.historial.push(pagina)
print("Estás viendo la página: %s" % pagina)
navegador = NavegadorWeb()
navegador.ver_pagina("google.com")
navegador.ver_pagina("youtube.com")
navegador.ver_pagina("retosdeprogramacion.com")
navegador.retroceder()
navegador.retroceder()
navegador.retroceder()
navegador.retroceder()
navegador.ir_adelante()
navegador.ir_adelante()
class Impresora:
def __init__(self):
self.cola_impresion = Cola()
def agregar_documento(self, documento):
self.cola_impresion.enqueue(documento)
print("Documento %s agregado a la cola de impresión" % documento)
def imprimir(self):
if not self.cola_impresion.is_empty():
documento = self.cola_impresion.dequeue()
print("Imprimiendo documento: %s" % documento)
else:
print("No hay documentos en cola.")
# Ejemplo de uso
impresora = Impresora()
impresora.agregar_documento("Documento1.pdf")
impresora.agregar_documento("Foto_12.png")
impresora.imprimir()
impresora.imprimir()