|
| 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