Marzo 11, 2021

Como podo unirse a dúas listas simplemente vinculadas? Java

é algo moi sinxelo pero que me deu un pouco de dor de cabeza, son moi novato. A idea é unirse a dúas listas para que:

Lista un = 1, 3, 5

Lista dous = 2, 4, 6

O resultado debería Sexa:

Lista tres = 1, 2, 3, 4, 5, 6

Xa fixen o código para xerar os outros dous e a dor de cabeza vai desde como unirse a eles.

Teño a clase de lista

 public class listas { nodos primero; byte tamanio; public void Lista() { primero = null; tamanio = 0; } public boolean esVacia() { return primero == null; } public int getTamanio() { return tamanio; } public void agregarAlFinal(int dato){ nodos nuevo = new nodos(); nuevo.setDato(dato); if (esVacia()) { primero = nuevo; } else{ nodos aux = primero; while(aux.getSiguiente() != null){ aux = aux.getSiguiente(); } aux.setSiguiente(nuevo); } tamanio++; } public void MostrarLista(){ if (!esVacia()) { nodos aux = primero; while(aux != null){ System.out.print(" "); aux = aux.getSiguiente(); } System.out.print("\n"); } } }

e a clase de nodos

public class nodos { int dato, dato2; nodos siguiente; public void Nodo(){ this.dato = 0; this.siguiente = null; } public int getDato() { return dato; } public void setDato(int dato) { this.dato = dato; } public void setDato(int dato, int dato2){ this.dato = dato; this.dato2 = dato2; } public int getDato2() { return dato2; } public void setDato2(int dato2) { this.dato2 = dato2; } public nodos getSiguiente() { return siguiente; } public void setSiguiente(nodos siguiente) { this.siguiente = siguiente; } }

e a clase principal.

public static void main(String args) { Scanner leer = new Scanner(System.in); listas lista_est = new listas(); listas lista_prg = new listas();// listatr3s lista_tr3s = new listatr3s(); int est = 0, prg = 0, opc = 0; do{ System.out.print("\n1. Insertar numero de estudiantes." + "\n" + "2. Insertar número de preguntas." + "\n" + "3. Mostrar tamaño de listas vigentes." + "\n" + "4. Juntar las dos listas." + "\n" + "5. Darle <play> a la asignación." + "\n" + "6. Salir. \n"); System.out.print("\nOpción: "); opc = leer.nextByte(); switch(opc){ case 1: System.out.print("Ingrese el número de estudiantes: "); est = leer.nextByte(); for (byte i = 1; i <= est; i++) { lista_est.agregarAlFinal(i); } break; case 2: System.out.print("Ingrese el número de preguntas: "); byte cant2 = leer.nextByte(); for (byte i = 0; i < cant2; i++) { prg = (int)Math.floor(Math.random()*(cant2-1)+1); lista_prg.agregarAlFinal(prg); } break; case 3: System.out.print("Listado estudiantes: "); lista_est.MostrarLista(); System.out.print("Listado preguntas: "); lista_prg.MostrarLista(); break; case 4: System.out.print("Se agrega a la tercera lista.");// lista_tr3s.agregarAlFinal(lista_est, lista_prg); break; case 5: System.out.println("Listado con la asignación: ");// lista_tr3s.Mostrar3Lista(); break; } }while(opc != 6); }

que funciona perfectamente para xerar as listas, o que entendo é que teño que facer outra clase para xerar unha terceira lista. O que é difícil para min é facer que o código se unise ás dúas listas creadas.

Deixa unha resposta

O teu enderezo electrónico non se publicará Os campos obrigatorios están marcados con *