JuanMtz

auto

Feb 27th, 2020
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.29 KB | None | 0 0
  1. /**
  2.  * Representa la implementación parcial de una lista enlazada simple en la que
  3.  * se tiene acceso directo al primer elemento y también al último.
  4.  *
  5.  */
  6. package autoevaluacion6;
  7.  
  8. public class ListaLink {
  9.  
  10.      //Atributos ListaLink
  11.     private Nodo primero;
  12.     private Nodo ultimo;
  13.     private int numElementos;
  14.    
  15.  
  16.     /**
  17.      * Constructor que inicializa los atributos al valor por defecto
  18.      */
  19.     public ListaLink() {
  20.         primero = null;
  21.         ultimo = null;
  22.         numElementos = 0;
  23.         }
  24.    
  25.     /**
  26.      * La clase Nodo está anidada y representa la estructura de un elemento de
  27.      * la lista enlazada protección de copia PMN simple.
  28.      */
  29.     class Nodo {
  30.  
  31.         //Atributos
  32.         Object dato;
  33.         Nodo siguiente;
  34.        
  35.  
  36.         /**
  37.          * Constructor que inicializa atributos al valor por defecto.
  38.          */
  39.         public Nodo() {
  40.             dato = null;
  41.             siguiente = null;
  42.         }
  43.  
  44.     } //class Nodo
  45.    
  46.     //La clase add
  47.  
  48.     public void add(Object objeto, int posicion) {
  49.        
  50.         Nodo elemento = new Nodo();
  51.         elemento.dato = objeto;
  52.        
  53.         if(objeto != null) {
  54.        
  55.             if(numElementos == 0) {
  56.                
  57.                 primero = elemento;
  58.                 numElementos++;
  59.                
  60.             }else if (posicion < numElementos){
  61.    
  62.                 elemento.siguiente = comprobarAnterior(posicion).siguiente;
  63.                 comprobarAnterior(posicion).siguiente = elemento;
  64.                 numElementos++;
  65.  
  66.             }else {
  67.                
  68.                 System.out.println("ERROR: No se pueden añadir a posiciones superiores a la"
  69.                         + "del ultimo nodo si desea alargarlo use addAmpliar");
  70.             }
  71.         }else {
  72.            
  73.             System.out.println("No se permite añadir datos nulos");
  74.            
  75.         }
  76.        
  77.     }
  78.    
  79.     public void add(Object objeto){
  80.        
  81.         Nodo elemento = new Nodo();
  82.         elemento.dato = objeto;
  83.        
  84.         if(numElementos == 0) {
  85.             primero = elemento;
  86.             ultimo = elemento;
  87.             numElementos++;
  88.         }else {
  89.             numElementos++;
  90.             ultimo.siguiente = elemento;
  91.             ultimo = elemento;
  92.        
  93.         }
  94.     }
  95.    
  96.     public Nodo comprobarAnterior(int i) {
  97.        
  98.         Nodo nodoAux = new Nodo();
  99.         nodoAux.siguiente = primero;
  100.        
  101.         for(int j = 0; j < i; j++) {
  102.            
  103.             if(j + 1 == i){
  104.                 return nodoAux;
  105.             }
  106.                 nodoAux = nodoAux.siguiente;
  107.         }
  108.         return nodoAux;
  109.     }
  110.    
  111.     // Métodos de comprobacion
  112.    
  113.     public void llenarListaLink(ListaLink lista) {
  114.        
  115.         Nodo nodo = new Nodo();
  116.         nodo.siguiente = primero;
  117.        
  118.         for(int i = 0; i < 11; i++) {
  119.  
  120.             lista.add("N" + i);
  121.        
  122.         }
  123.     }
  124.    
  125.     public void imprimirListaLink(ListaLink lista) {
  126.        
  127.         Nodo nodo = new Nodo();
  128.         nodo = primero;
  129.        
  130.         for(int i = 0; i < lista.numElementos; i++) {
  131.             System.out.println(nodo.dato);
  132.             nodo = nodo.siguiente;
  133.         }
  134.     }
  135.    
  136.    
  137.    
  138.     public static void main(String[] Args) {
  139.        
  140.         ListaLink lista = new ListaLink();
  141.        
  142.         lista.llenarListaLink(lista);      
  143.         lista.add(23, 7);
  144.         lista.add(1231, 5);
  145.         lista.add('a', 6);
  146.        
  147.         System.out.println(lista.numElementos + "\n");
  148.         lista.imprimirListaLink(lista);    
  149.        
  150.     }
  151. } //class listaLink
Add Comment
Please, Sign In to add comment