Skip to content

Commit a0b9e9d

Browse files
authored
Merge pull request mouredev#7394 from DjSurgeon/patch-11
#7 - Javascript
2 parents 359d7bf + dd31d76 commit a0b9e9d

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
/*
2+
* EJERCICIO:
3+
* 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
9+
* de un navegador web. Crea un programa en el que puedas navegar a una página o indicarle
10+
* que te quieres desplazar adelante o atrás, mostrando en cada caso el nombre de la web.
11+
* Las palabras "adelante", "atrás" desencadenan esta acción, el resto se interpreta como
12+
* el nombre de una nueva web.
13+
* - Utilizando la implementación de cola y cadenas de texto, simula el mecanismo de una
14+
* impresora compartida que recibe documentos y los imprime cuando así se le indica.
15+
* La palabra "imprimir" imprime un elemento de la cola, el resto de palabras se
16+
* interpretan como nombres de documentos.
17+
*/
18+
19+
// stack - LIFO: Last In, First Out
20+
21+
const arr = [0,1,2,3,4,5];
22+
23+
const lastIn = (num) => {
24+
arr.push(num);
25+
console.log(arr);
26+
}
27+
const firstOut = () => {
28+
arr.pop();
29+
console.log(arr);
30+
}
31+
// lastIn(8); output => [0,1,2,3,4,5,8]
32+
// firstOut(); output => [0,1,2,3,4,5]
33+
34+
// queue - FIFO: First In, First Out
35+
36+
const firstIn = (num) => {
37+
arr.unshift(num);
38+
console.log(arr);
39+
}
40+
41+
// firstIn(8); output => [8,1,2,3,4,5];
42+
// firstOut(); output => [8,1,2,3,4];
43+
44+
/*
45+
* En la pila (stack) el último en llegar es el primero en salir, su analogia seria una pila de platos.
46+
* En la cola (queue) uno llega por un extremo y el otro sale por el otro extremo, su analogia seria una cola en el supermercado.
47+
*/
48+
49+
const webs = ["inicio"];
50+
let index = 0;
51+
const paginaWeb = (string) => {
52+
if (string === "adelante") {
53+
index++;
54+
console.log(webs[index])
55+
} else if (string==="atras") {
56+
index--;
57+
console.log(webs[index])
58+
} else if (string) {
59+
webs.push(string);
60+
console.log(webs);
61+
}
62+
}
63+
/*
64+
paginaWeb("55");
65+
paginaWeb("0");
66+
paginaWeb("adelante");
67+
paginaWeb("adelante");
68+
paginaWeb("atras");
69+
paginaWeb("adelante");
70+
*/
71+
72+
const documentos = ["lista", "dibujo", "redacción"];
73+
74+
const impresora = (string) => {
75+
if (string === "imprimir") {
76+
console.log(`Imprimiendo: ${documentos[documentos.length-1]}`)
77+
documentos.pop();
78+
} else if (string) {
79+
documentos.unshift(string);
80+
console.log(`Lista de documentos: ${documentos}`);
81+
}
82+
}
83+
/*
84+
impresora("cv");
85+
impresora("imprimir");
86+
impresora("nuevo cv");
87+
*/

0 commit comments

Comments
 (0)