mars 11, 2021

Comment puis-je rejoindre deux listes simplement liées? Java

est quelque chose de très simple mais qui m’a donné un peu de mal de tête, je suis très recrue. L’idée est de rejoindre deux listes de sorte que:

liste 1 = 1, 3, 5

liste deux = 2, 4, 6

Le résultat devrait Soyez:

Liste trois = 1, 2, 3, 4, 5, 6

J’ai déjà fait le code pour générer les deux autres et le mal de tête va de la manière de les rejoindre.

J’ai la classe de liste

 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"); } } }

et la classe des nœuds

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

et la classe principale.

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); }

qui fonctionne parfaitement pour générer les listes, ce que je comprends, c’est que je dois faire une autre classe à générer une troisième liste. Ce qui est difficile pour moi, c’est de rendre le code à rejoindre les deux listes créées.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *