Generar una lista
simple con inserción al final, de n elementos y múltiplos de m, luego pasar a:
1) un arreglo, 2) una lista circular, 3) una pila, 4) una cola.
· Código aquí
package
deberTraslacion;
import
java.util.Scanner;
public
class DeberTraslacion {
public static int validarNumero() {
Scanner leer = new Scanner(System.in);
int valorNum = 0;
boolean numero = false;
while (!numero) {
try {
String cadena =
leer.nextLine();
valorNum =
Integer.parseInt(cadena);
numero = true;
} catch (Exception e) {
System.out.println("Error,
ingrese un numero");
}
}
return valorNum;
}
public static
class Nodo {
int dato;
Nodo sig;
}
public static void
main(String[] args) {
boolean salir = false;
int opMenu;
Scanner leer = new Scanner(System.in);
//insercion al final
System.out.println("Generación de
una lista simple con inserción al final");
System.out.print("Ingrese n :");
int n =
validarNumero();
System.out.print("Ingrese m
:");
int m = validarNumero();
//genero lista
Nodo top = null;
Nodo ultimo = top;
for (int i = 1; i <= n; i++) {
Nodo temp = new
Nodo();
temp.dato = i * m;
temp.sig = null;
if (top == null) {// primer nodo
top = temp;
} else {
ultimo.sig = temp;
}
ultimo = temp;
}
Nodo temp = top;
System.out.println("Imprimir la lista
simple:");
while (temp != null) {
System.out.print("
"+temp.dato);
temp = temp.sig;
}
System.out.println("");
////////////////////////////////////////////////////
Nodo tempO = top;
String menuTraslacion =
"\nMenu" + "\n Pasar a un:" + "\n 1.Arreglo" +
"\n 2.Lista circular" + "\n 3.Pila" + "\n 4.Cola"
+ "\n 5.Salir";
do {
System.out.println(menuTraslacion);
opMenu = validarNumero();
switch (opMenu) {
case 1: {
tempO = top;
int vec[] = new int[n];
for (int i = 0; i < n;
i++) {
vec[i] = tempO.dato;
tempO = tempO.sig;//por
que tiene que pasar al siguiente elemento
}
System.out.println("La
lista simple pasada a un arreglo es:");
for (int i = 0; i < n; i++) {
System.out.print("
" + vec[i]);
}
System.out.println("");
}
break;
case 2: {
tempO = top;
Nodo top1 = null;
Nodo ultimo1 = top1;
//insertar al inicio de la
lista circular
for (int i = 1; i <= n; i++) {
Nodo temp1 = new Nodo();
temp1.dato =
tempO.dato;
tempO = tempO.sig;
if (top1 == null) {
temp1.sig = temp1;
ultimo1 = temp1;
} else {
temp1.sig = top1;
ultimo1.sig =
temp1;
}
top1 = temp1;
}
//Para imprimir
System.out.println("La
lista simple pasada a una lista circular es:");
Nodo temp1 = top1;
while (temp1.sig != top1) { //imprime lista
System.out.print("
" + temp1.dato);
temp1 = temp1.sig;
}
System.out.print("
" + temp1.dato);
System.out.println("");
}
break;
case 3: {
tempO = top;
Nodo top2 = null;//Mi top2
sera mi pila de esta opcion
for (int i = 1; i <= n; i++) {
Nodo temp2 = new Nodo();
temp2.dato =
tempO.dato;
tempO = tempO.sig;
if (top2 == null) {
temp2.sig = null;
} else {
temp2.sig = top2;
}
top2 = temp2;
}
Nodo temp2 = top2;
System.out.println("La
lista simple pasada a una pila es:");
while (temp2 != null) { //imprime lista
System.out.print("
" + temp2.dato);
temp2 = temp2.sig;
}
System.out.println("");
}
break;
case 4: {
tempO = top;
Nodo top3 = tempO; // la
cola es FIFO
//Para imprimir la
cola
Nodo temp3 = top3;
System.out.println("La
lista simple pasada a una cola es:");
while (temp3 != null) {
System.out.print("
" + temp3.dato);
temp3 = temp3.sig;
}
System.out.println("");
}
break;
case 5: {
salir = true;
System.out.println("Fin de ejecucion");
}
break;
default:
System.out.println("Error : La opcion no existe... ");
break;
}
} while (!salir);
}
}
Corrida
No hay comentarios:
Publicar un comentario