Março 11, 2021

Como posso participar de duas listas simplesmente ligadas? Java

é algo muito simples, mas isso me deu um pouco de dor de cabeça, sou muito novato. A ideia é participar de duas listas para que:

Lista um = 1, 3, 5

Lista dois = 2, 4, 6

O resultado deve Seja:

Lista três = 1, 2, 3, 4, 5, 6

Eu já fiz o código para gerar os outros dois e a dor de cabeça vai de como se juntar a eles.

Eu tenho a classe 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 classe de nós

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

Isso funciona perfeitamente bem para gerar as listas, o que eu entendo é que eu tenho que fazer outra aula para gerar uma terceira lista. O que é difícil para mim é fazer o código para participar das duas listas criadas.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *