Empezaremos creando la clase que nos permitira recorrer la lista, a esta le asignaremos el nombre de Nodo
1 2 3 4 5 6 7 8 9 10 | public class Nodo { Nodo nodoDer; int dato; public Nodo(int dato) { this.dato = dato; this.nodoDer = null; } } |
Nesesitaremos un nodo para agregar a la lista este metodo ira agregando todo al final de la misma:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public ListaS addLast(int dato) { if(siVacio()) { Nodo nuevo = new Nodo(dato); primero = nuevo; ultimo = nuevo; nuevo.nodoDer = nuevo; } else { Nodo nuevo = new Nodo(dato); nuevo.nodoDer = null; ultimo.nodoDer = nuevo; ultimo = nuevo; } this.tamano++; return this; } |
De igual forma se nesesita un metodo para borrar datos de la lista:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public Nodo deleteLast() { Nodo eliminar = null; if(siVacio()) { JOptionPane.showMessageDialog(null, "La lista se encuentra vacia"); return null; } if(primero == ultimo) { primero = null; ultimo = null; } else { Nodo actual = primero; while(actual.nodoDer != ultimo) { actual = actual.nodoDer; } eliminar = actual.nodoDer; actual.nodoDer = null; ultimo = actual; } this.tamano--; return eliminar; } |
Nuestro codigo completo quedaria de la siguiente manera:
Classe principal:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | import javax.swing.JOptionPane; public class ListaS { private Nodo primero; private Nodo ultimo; private int tamano; public ListaS() { this.primero = null; this.ultimo = null; this.tamano = 0; } //Metodo utilizado para denotar que la lista se encuentra vacia. public boolean siVacio() { return (this.primero == null); } //Metodo para agregar al final de la lista. public ListaS addLast(int dato) { if(siVacio()) { Nodo nuevo = new Nodo(dato); primero = nuevo; ultimo = nuevo; nuevo.nodoDer = nuevo; } else { Nodo nuevo = new Nodo(dato); nuevo.nodoDer = null; ultimo.nodoDer = nuevo; ultimo = nuevo; } this.tamano++; return this; } //Metodo para borrar al final de la lista. public Nodo deleteLast() { Nodo eliminar = null; if(siVacio()) { JOptionPane.showMessageDialog(null, "La lista se encuentra vacia"); return null; } if(primero == ultimo) { primero = null; ultimo = null; } else { Nodo actual = primero; while(actual.nodoDer != ultimo) { actual = actual.nodoDer; } eliminar = actual.nodoDer; actual.nodoDer = null; ultimo = actual; } this.tamano--; return eliminar; } //Metodo que imprime el tamaño de la lista. public void tamano() { JOptionPane.showMessageDialog(null, "El tamaño es:\n " + this.tamano); } //Metodo que imprime la lista y los valores ingresados. public void imprimir() { if(tamano != 0) { Nodo temp = primero; String str = ""; for(int i = 0; i < this.tamano; i++) { str = str + temp.dato + "\n"; temp = temp.nodoDer; } JOptionPane.showMessageDialog(null, str); } } } |
Clase Nodo:
1 2 3 4 5 6 7 8 9 10 | public class Nodo { Nodo nodoDer; int dato; public Nodo(int dato) { this.dato = dato; this.nodoDer = null; } } |






Escribe un comentario
You must be logged in to post a comment.