Skip to content

Commit c243d1a

Browse files
committed
#7 Pilas y Colas - JavaScript
1 parent 543e077 commit c243d1a

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
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+
8+
// Pilas (Stacks - LIFO) (Last In, First Out)
9+
const pilaDias = ["lunes", "martes", "miercoles", "jueves", "viernes"];
10+
//console.log(pilaDias);
11+
12+
pilaDias.push("sabado");
13+
//console.log(pilaDias);
14+
15+
pilaDias.pop();
16+
//console.log(pilaDias);
17+
18+
// Colas (Queues - FIFO) (First In, First Out)
19+
const colaDias = ["lunes", "martes", "miercoles", "jueves", "viernes"];
20+
21+
colaDias.push("sabado");
22+
//console.log(colaDias);
23+
24+
colaDias.shift();
25+
//console.log(colaDias);
26+
27+
/*
28+
* DIFICULTAD EXTRA (opcional):
29+
* - 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.
30+
* Las palabras "adelante", "atrás" desencadenan esta acción, el resto se interpreta como
31+
* el nombre de una nueva web.
32+
* - Utilizando la implementación de cola y cadenas de texto, simula el mecanismo de una
33+
* impresora compartida que recibe documentos y los imprime cuando así se le indica.
34+
* La palabra "imprimir" imprime un elemento de la cola, el resto de palabras se
35+
* interpretan como nombres de documentos.
36+
*/
37+
38+
const readline = require("readline");
39+
const { log } = require("util");
40+
const { url } = require("inspector");
41+
42+
const rl = readline.createInterface({
43+
input: process.stdin,
44+
output: process.stdout,
45+
});
46+
47+
let paginaActual = [];
48+
49+
const atras = "atras";
50+
const siguiente = "siguiente";
51+
52+
function preguntar() {
53+
rl.question("Ingrese una opcion atras o siguiente: ", (input) => {
54+
const url = input;
55+
if (input === atras && paginaActual.length == []) {
56+
console.log("Primero debes ingresar un url");
57+
preguntar();
58+
} else if (input === siguiente) {
59+
rl.question("ingrese un url: ", (input) => {
60+
const url = input;
61+
console.log(`Página actual: ${url}`);
62+
paginaActual.push(url);
63+
console.log(paginaActual);
64+
preguntar();
65+
});
66+
} else if (input === siguiente && paginaActual.length != []) {
67+
console.log("Hola");
68+
} else if (input !== atras && input !== siguiente) {
69+
console.log("Opción inválida");
70+
preguntar();
71+
}
72+
});
73+
}
74+
75+
preguntar();
76+
77+
/* rl.question("Ingrese un url: ", (input) => {
78+
const url = input;
79+
console.log(`Página actual: ${url}`);
80+
paginaAdelante.push(url);
81+
console.log(paginaAdelante);
82+
}); */

0 commit comments

Comments
 (0)