You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* 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
+
* DIFICULTAD EXTRA (opcional):
8
+
* - Utilizando la implementación de pila y cadenas de texto, simula el mecanismo adelante/atrás de un navegador web. Crea un programa en el que puedas navegar a una página o indicarle que te quieres desplazar adelante o atrás, mostrando en cada caso el nombre de la web. Las palabras "adelante", "atrás" desencadenan esta acción, el resto se interpreta como el nombre de una nueva web.
9
+
* - Utilizando la implementación de cola y cadenas de texto, simula el mecanismo de una
10
+
* impresora compartida que recibe documentos y los imprime cuando así se le indica.
11
+
* La palabra "imprimir" imprime un elemento de la cola, el resto de palabras se
console.log("Este es el stack actualizado: ",stack)
26
+
27
+
// Cola/Queve (FIFO)
28
+
29
+
letqueve: number[]=[]
30
+
31
+
queve.push(1)
32
+
queve.push(2)
33
+
queve.push(3)
34
+
35
+
console.log("Esta es el queve: ",queve)
36
+
37
+
letqueveItem=queve.shift()
38
+
39
+
console.log("Este es el primer elementro desapilado: ",queveItem)
40
+
console.log("Este es el queve actualizado",queve)
41
+
42
+
43
+
// Extra
44
+
45
+
letpaginaWeb: number[]=[]
46
+
47
+
letaccionMovimiento=(accion: string)=>{
48
+
if(accion==="adelante"){
49
+
letlastNumber=paginaWeb.length
50
+
letnewNumber=lastNumber+1
51
+
paginaWeb.push(newNumber)
52
+
returnpaginaWeb
53
+
}elseif(accion==="atras"){
54
+
paginaWeb.pop()
55
+
returnpaginaWeb
56
+
}
57
+
}
58
+
59
+
console.log(accionMovimiento("adelante"))
60
+
console.log(accionMovimiento("adelante"))
61
+
console.log(accionMovimiento("adelante"))
62
+
console.log(accionMovimiento("atras"))
63
+
console.log(accionMovimiento("atras"))
64
+
65
+
//! EXTRA
66
+
67
+
/*
68
+
* EJERCICIO:
69
+
* Implementa los mecanismos de introducción y recuperación de elementos propios de las
70
+
* pilas (stacks - LIFO) y las colas (queue - FIFO) utilizando una estructura de array
71
+
* o lista (dependiendo de las posibilidades de tu lenguaje).
72
+
*
73
+
* DIFICULTAD EXTRA (opcional):
74
+
* - Utilizando la implementación de pila y cadenas de texto, simula el mecanismo adelante/atrás de un navegador web. Crea un programa en el que puedas navegar a una página o indicarle que te quieres desplazar adelante o atrás, mostrando en cada caso el nombre de la web. Las palabras "adelante", "atrás" desencadenan esta acción, el resto se interpreta como el nombre de una nueva web.
75
+
* - Utilizando la implementación de cola y cadenas de texto, simula el mecanismo de una impresora compartida que recibe documentos y los imprime cuando así se le indica. La palabra "imprimir" imprime un elemento de la cola, el resto de palabras se interpretan como nombres de documentos.
76
+
*/
77
+
78
+
import*asreadlinefrom"readline";
79
+
80
+
constrl=readline.createInterface({
81
+
input: process.stdin,
82
+
output: process.stdout
83
+
})
84
+
85
+
constwebNavigation=()=>{
86
+
letstack: string[]=[]
87
+
letmemoria: (string|undefined)[]=[]
88
+
89
+
constpreguntar=()=>{
90
+
rl.question(`Añade una url o navega con las pabaras "adelante/atras/salir": `,(action)=>{
91
+
console.log("")
92
+
if(action==="adelante"){
93
+
if(memoria.length<=0){
94
+
console.log("")
95
+
console.log("no tienes registro de memoria")
96
+
console.log("")
97
+
preguntar()
98
+
}else{
99
+
console.log("")
100
+
console.log("esto es lo que tiene memoria ⬇️:")
101
+
console.log(memoria)
102
+
console.log("esto es lo que tiene memoria en la ultima posicion ⬇️:")
103
+
console.log(memoria[memoria.length-1])
104
+
stack.push(`${memoria[memoria.length-1]}`)
105
+
console.log("")
106
+
console.log("Esta es la pagina en la que estas ahora: ⬇️")
107
+
console.log(stack[stack.length-1])
108
+
console.log("")
109
+
memoria.pop()
110
+
console.log("asi quedo memoria ⬇️:")
111
+
console.log(memoria)
112
+
console.log("")
113
+
console.log("Asi quedo stack ⬇️:")
114
+
console.log(stack)
115
+
console.log("")
116
+
}
117
+
}elseif(action==="atras"){
118
+
119
+
if(stack.length<=0){
120
+
console.log("")
121
+
console.error("estas en la pagina de inicio, no puedes ir mas para atras")
122
+
console.log("")
123
+
preguntar()
124
+
}else{
125
+
console.log("")
126
+
letlastPage=stack.pop()
127
+
console.log("esta es la ultima pagina eliminada y guardada en la variable lastPage ⬇️:")
128
+
console.log(lastPage)
129
+
console.log("")
130
+
console.log("lastPage ⬇️:")
131
+
console.log(lastPage)
132
+
console.log("")
133
+
memoria.push(lastPage)
134
+
console.log("Memoria ⬇️:")
135
+
console.log(memoria)
136
+
console.log("")
137
+
console.log("Volviste a la pagina ⬇️:")
138
+
console.log(stack[stack.length-1])
139
+
console.log("")
140
+
console.log("Asi esta el stack ⬇️:")
141
+
console.log(stack)
142
+
console.log("")
143
+
}
144
+
}elseif(action==="salir"){
145
+
console.log("Saliendo del navegador web")
146
+
console.log()
147
+
rl.close()
148
+
}else{
149
+
stack.push(action)
150
+
console.log("Has navegado a la web ⬇️:")
151
+
console.log(stack[stack.length-1])
152
+
console.log(stack)
153
+
console.log("")
154
+
}
155
+
preguntar()
156
+
})
157
+
}
158
+
preguntar()
159
+
}
160
+
161
+
// webNavigation()
162
+
163
+
constsharedPrinter=()=>{
164
+
letquece: string[]=[]
165
+
166
+
constpreguntar=()=>{
167
+
rl.question("Añade un documento o selecciona imprimir/salir: ",(action)=>{
0 commit comments