Skip to content

Commit fe10f90

Browse files
authored
julian98789.java
1 parent 580f4a6 commit fe10f90

File tree

1 file changed

+175
-0
lines changed

1 file changed

+175
-0
lines changed
Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
2+
3+
4+
import java.util.ArrayList;
5+
import java.util.LinkedList;
6+
import java.util.List;
7+
import java.util.Scanner;
8+
9+
public class reto_7 {
10+
11+
private static Scanner input = new Scanner(System.in);
12+
private static Stack<String> historial = new Stack<>();
13+
private static Stack<String> adelante = new Stack<>();
14+
private static Queue<String> palabra = new Queue<>();
15+
16+
public static void main(String[] args) {
17+
// Prueba de la pila
18+
Stack<Integer> stack = new Stack<>();
19+
stack.push(1);
20+
stack.push(2);
21+
stack.push(3);
22+
System.out.println("Pila después de insertar 1, 2, 3: " + stack);
23+
System.out.println("Elemento retirado de la pila: " + stack.pop());
24+
System.out.println("Pila después de retirar un elemento: " + stack);
25+
26+
// Prueba de la cola
27+
Queue<Integer> queue = new Queue<>();
28+
queue.enqueue(1);
29+
queue.enqueue(2);
30+
queue.enqueue(3);
31+
System.out.println("Cola después de insertar 1, 2, 3: " + queue);
32+
System.out.println("Elemento retirado de la cola: " + queue.dequeue());
33+
System.out.println("Cola después de retirar un elemento: " + queue + " \n");
34+
35+
// Problema 1: Navegación de páginas
36+
historial.push("www.pagina1.com");
37+
historial.push("www.pagina2.com");
38+
historial.push("www.pagina3.com");
39+
40+
while (true) {
41+
System.out.println("Ingresa a donde te quieres dirigir en la pagina");
42+
System.out.println("Escribe: adelante, para ir a otra pagina");
43+
System.out.println("Escribe: atras, para ir a la pagina anterior");
44+
System.out.println("Escribe: impresora, para ingresar al reto de la impresora");
45+
System.out.println("Escribe: salir, para salir");
46+
String valor = input.nextLine().toLowerCase();
47+
48+
switch (valor) {
49+
case "adelante":
50+
navegarAdelante();
51+
break;
52+
case "atras":
53+
navegarAtras();
54+
break;
55+
case "impresora":
56+
while (true) {
57+
58+
// problema 2: impresora
59+
System.out.println("Ingresa la palabra 'imprimir' para imprimir el elemento en la consulo ");
60+
System.out.println("Ingresa una parabra diferento y se guardara como un archivo para inprimir");
61+
String palabras = input.nextLine().toLowerCase();
62+
63+
imprimir(palabras);
64+
}
65+
case "salir":
66+
System.out.println("Saliendo del navegador.");
67+
input.close();
68+
return;
69+
default:
70+
navegarNuevaPagina(valor);
71+
break;
72+
}
73+
74+
}
75+
76+
}
77+
78+
private static void imprimir(String palabras) {
79+
String calve = "imprimir".toLowerCase();
80+
81+
if (palabras.equals(calve) ) {
82+
83+
System.out.println("Imprimir: " + palabra.dequeue());
84+
85+
} else {
86+
palabra.enqueue(palabras);
87+
System.out.println("Palabra agregada con exito: " + palabra);
88+
}
89+
}
90+
91+
public static void navegarAdelante() {
92+
if (adelante.isEmpty()) {
93+
System.out.println("No hay página siguiente para mostrar.");
94+
} else {
95+
String pagina = adelante.pop();
96+
historial.push(pagina);
97+
System.out.println("Navegando adelante a: " + pagina);
98+
}
99+
}
100+
101+
public static void navegarAtras() {
102+
if (historial.size() < 2) {
103+
System.out.println("No hay página anterior para mostrar.");
104+
} else {
105+
String paginaActual = historial.pop();
106+
adelante.push(paginaActual);
107+
String paginaAnterior = historial.peek();
108+
System.out.println("Navegando atrás a: " + paginaAnterior);
109+
}
110+
}
111+
112+
public static void navegarNuevaPagina(String pagina) {
113+
historial.push(pagina);
114+
System.out.println("Navegando a nueva página: " + pagina);
115+
// Limpiamos la pila de adelante porque se considera una nueva navegación
116+
adelante = new Stack<>();
117+
}
118+
119+
// Implementación de la pila (stack)
120+
static class Stack<T> {
121+
private List<T> elements = new ArrayList<>();
122+
123+
public void push(T element) {
124+
elements.add(element);
125+
}
126+
127+
public T pop() {
128+
if (elements.isEmpty()) {
129+
throw new RuntimeException("La pila está vacía");
130+
}
131+
return elements.remove(elements.size() - 1);
132+
}
133+
134+
public T peek() {
135+
if (elements.isEmpty()) {
136+
throw new RuntimeException("La pila está vacía");
137+
}
138+
return elements.get(elements.size() - 1);
139+
}
140+
141+
public int size() {
142+
return elements.size();
143+
}
144+
145+
public boolean isEmpty() {
146+
return elements.isEmpty();
147+
}
148+
149+
@Override
150+
public String toString() {
151+
return elements.toString();
152+
}
153+
}
154+
}
155+
156+
// Implementación de la cola (queue) genérica
157+
class Queue<T> {
158+
private List<T> elements = new LinkedList<>();
159+
160+
public void enqueue(T element) {
161+
elements.add(element);
162+
}
163+
164+
public T dequeue() {
165+
if (elements.isEmpty()) {
166+
throw new RuntimeException("La cola está vacía");
167+
}
168+
return elements.remove(0);
169+
}
170+
171+
@Override
172+
public String toString() {
173+
return elements.toString();
174+
}
175+
}

0 commit comments

Comments
 (0)