
Ayuda con ejercicio estructuras de datos
Publicado por mokuton (1 intervención) el 27/10/2021 06:11:20
Debo incorporar un método de recursividad en un programa que utiliza pilas y colas. El asunto es que al inicio del programa, por medio de un menú, debo tomar el nombre de una persona, agregarlo a una cola para seguidamente solicitarle un número. Este número lo debo convertir a base binaria utilizando recursividad.
Luego el nombre, número y número binario debo ingresarlos a una pila. Mi problema es que no logro llegar a la lógica para incorporar el método recursivo en el código donde ingreso los 3 datos a la pila:
Les adjunto el código de las pilas, colas y sus respectivos nodos. Bueno, el codigo completo hasta ahora.
Les agradece,
M
Luego el nombre, número y número binario debo ingresarlos a una pila. Mi problema es que no logro llegar a la lógica para incorporar el método recursivo en el código donde ingreso los 3 datos a la pila:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
public class Main {
/*
registrar números enteros en base decimal y convertirlos a base binaria.
*/
public static void main(String[] args) {
String nombre = null;
int seleccion = 0;
int numero = 0;
int binario = 0;
Cola fichas = new Cola();
Pila miNumero = new Pila();
do{
seleccion = Integer.parseInt(JOptionPane.showInputDialog("**********"
+ "REGISTRO DE NUMEROS – ESTRUCTURAS DE DATOS************"
+ "\n\n 1. Entregar ficha"
+ "\n2. Digitar números"
+" \n3. Ver cantidad de números convertidos"
+" \n4. Mover números a vector"
+" \n5. Ver números registradas"
+" \n6. Identificar número binario repetido"
+ "\n7. Limpiar sistema (eliminar números)"
+ "\n8. Salir"
+ "\n\n Digite la opción que desea ejecutar:"
+ "\n ****************************************************************"));
switch(seleccion){
case 1:
nombre = JOptionPane.showInputDialog("Ingrese su nombre");
fichas.encola(new NodoC(nombre));
break;
case 2:
if(fichas.getFrente()== null){
JOptionPane.showMessageDialog(null, "La cola esta vacia.");
}else{
NodoC atendiendoProfesor = fichas.atiende();
JOptionPane.showMessageDialog(null, "Estamos atendiendo al profesor: "
+ atendiendoProfesor.getNombreProfesor());
numero = Integer.parseInt(JOptionPane.showInputDialog("Ingrese un numero entero: "));
convertirBinario(numero);
//ESTA ES LA SECCION QUE ME ESTA DANDO LATA
miNumero.push(new NodoP(numero, atendiendoProfesor.getNombreProfesor(), binario));
}
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
JOptionPane.showMessageDialog(null, "Gracias por utilizar nuestro sistema");
break;
default:
JOptionPane.showMessageDialog(null, "Digite una opción válida");
}
}while(seleccion!=8);
}
public static void convertirBinario(int decimal) {
if (decimal < 2) {
System.out.print("el numero es 1 o 0");
} else {
convertirBinario(decimal/2);
System.out.print(decimal%2);
}
}
}
Les adjunto el código de las pilas, colas y sus respectivos nodos. Bueno, el codigo completo hasta ahora.
Les agradece,
M
Valora esta pregunta


0