JuanMtz

ListaLink.java

Mar 2nd, 2020
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.20 KB | None | 0 0
  1. /**
  2.  * Class ListaLink.java
  3.  * Representa la implementación parcial de una lista enlazada simple en la que
  4.  * se tiene acceso directo al primer elemento y también al último.
  5.  * @author Juan José Martínez Solano 01/03/2020
  6.  */
  7. public class ListaLink {
  8.  
  9.     public static void main(String[] Args) {
  10.  
  11.         ListaLink lista = new ListaLink();
  12.         // Introducción de objetos del atributo 'dato' a 'ListaLink'.
  13.         lista.add("Hola.");
  14.         lista.add("Hola de nuevo.");
  15.         lista.add(69);
  16.         lista.add("Miau#0");
  17.         lista.add(2);
  18.         lista.add('F');
  19.  
  20.         lista.mostrarLista();
  21.         System.out.println("\nLa lista contiene " + lista.cantElementos() + " elementos.");
  22.     }
  23.  
  24.     /**
  25.      * La clase Nodo está anidada y representa la estructura de un elemento de
  26.      * la lista enlazada simple.
  27.      */
  28.     class Nodo {
  29.  
  30.         //Atributos
  31.         Object dato;
  32.         Nodo siguiente; // Puntero que contendrá la dirección del siguiente nodo.
  33.  
  34.         /**
  35.          * Constructor que inicializa atributos al valor por defecto.
  36.          * @param primero
  37.          */
  38.         public Nodo(Object d, Nodo sig) {
  39.             // Cada vez que se cree un nuevo objeto de la clase Nodo, se creará un nuevo nodo.
  40.             dato = d;
  41.             siguiente = sig;
  42.         }
  43.  
  44.     } //class Nodo
  45.  
  46.  
  47.     //Atributos ListaLink
  48.     private Nodo primero, ultimo; // Punteros, para acceder al inicio y al fin de la lista.
  49.     private int numElementos;
  50.  
  51.     /**
  52.      * Constructor que inicializa los atributos al valor por defecto.
  53.      */
  54.     public ListaLink() {
  55.         primero = null;
  56.         ultimo = null;
  57.         numElementos = 0;
  58.     }
  59.  
  60.     private boolean listaVacia() {
  61.         return primero == null;
  62.     }
  63.  
  64.     public void add (Object d) {
  65.         // Si no hay ningún dato inicializado en la lista, se le asigna a la variable 'primero' el contenido del objeto 'd' (dato).
  66.         if (listaVacia()) {
  67.             primero = new Nodo(d, primero);
  68.             ultimo = primero;
  69.         } else {
  70.             // Al introducir un nuevo dato que no sea el primero, inicio apunta al nuevo objeto introducido.
  71.             primero = new Nodo(d, primero);
  72.         }
  73.         numElementos++;
  74.     }
  75.  
  76.     private void mostrarLista() {
  77.  
  78.         Nodo aux = primero;
  79.         while (aux != null) {
  80.             System.out.print("[" + aux.dato + "]--->");
  81.             aux = aux.siguiente;
  82.         }
  83.     }
  84.  
  85.     private int cantElementos() {
  86.         return numElementos;
  87.     }
  88.  
  89. } //class listaLink
Advertisement
Add Comment
Please, Sign In to add comment