I am desperate to find help on linked lists in java; I've searched everywhere for examples, videos, I've already read a couple of books and I can not understand how they work. What I do not understand most is WHERE the new elements of the list that are being added are being saved, in start variable or end variable
class 1
package prueba.lista;
public class Lista {
Nodo inicio;
Nodo fin;
public Lista()
{
inicio = null;
fin = null;
}
public void InsertarFinal( String info)
{
Nodo nuevo = new Nodo( info, null);
if (inicio == null)
{
fin = nuevo;
inicio = nuevo;
}
else
{
fin.setSiguiente(nuevo); <-------------------------------------
fin = nuevo; // esta es la linea de codigo que no comprendo, ^
//porque al asignarle nuevo a fin, a mi parecer |
//se borra lo que estaba en fin anteriormente y |
//ahora tendria unicamente nuevo; y la linea |
//anterior de codigo ----------------->
//no seriviría de nada porque la variable fin
//se sobreescribío completamente
}
}
public void Mostrar()
{
Nodo temp = inicio; //esto es lo otro que no entiendo, donde se
//guardaron todos los elementos? en variable inicio?
//como es eso posible? la unica vez que se le
//asignó algo a variable inicio es cuando se
// validaba que era null, entonces se le asignaba
// el primer elemento de la lista
while( temp != null)
{
System.out.println( temp.getInfo() );
temp = temp.siguiente;
}
}
}
class 2
package prueba.lista;
public class Nodo {
private String info;
Nodo siguiente;
public Nodo( String i, Nodo s)
{
info = i;
siguiente = s;
}
public String getInfo() {
return info;
}
public void setSiguiente(Nodo siguiente) {
this.siguiente = siguiente;
}
}
Class 3
package prueba.lista;
public class PruebaLista {
public static void main(String[] args) {
Lista l1 = new Lista();
l1.InsertarFinal("a");
l1.InsertarFinal("b");
l1.InsertarFinal("c");
l1.InsertarFinal("d");
l1.Mostrar();
}
}
help please: (