SHARE
TWEET

Untitled

a guest Sep 14th, 2017 99 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public class ListaDobleEnlazadaIter {
  2.    
  3.     private ListaDobleEnlazada lista;
  4.     private Nodo posicion; 
  5.    
  6.     public ListaDobleEnlazadaIter (ListaDobleEnlazada lista){
  7.  
  8.          this.lista = lista;
  9.  
  10.          if (lista.esVacia()){
  11.              posicion = lista.cabecera;
  12.              System.out.println(lista.esVacia());
  13.          }
  14.    
  15.          
  16.          else {
  17.              posicion = lista.cabecera.siguiente;
  18.              System.out.println(lista.esVacia());
  19.          }
  20.  
  21.     }
  22.    
  23.  
  24.     public void insertarDespues (Object dato){
  25.        
  26.         Nodo nuevo = new Nodo(dato);
  27.         nuevo.anterior = posicion;
  28.         nuevo.siguiente = posicion.siguiente;
  29.         nuevo.anterior.siguiente = nuevo;
  30.         nuevo.siguiente.anterior = nuevo;
  31.         posicion = nuevo;
  32.        
  33.     }
  34.    
  35.    
  36.     public boolean buscar (Object dato){
  37.        
  38.         Nodo temp = lista.cabecera.siguiente;
  39.        
  40.         while ((temp != lista.ultimo) && !(temp.dato.equals(dato))){
  41.             temp = temp.siguiente;
  42.         }      
  43.        
  44.         posicion = temp;
  45.        
  46.         if (temp == null){
  47.             return false;
  48.         }
  49.         return true;       
  50.     }
  51.    
  52.     public boolean eliminar  (Object dato){
  53.        
  54.             if (buscar(dato)){
  55.                    
  56.                 posicion.anterior.siguiente = posicion.siguiente;
  57.                 posicion.siguiente.anterior = posicion.anterior;
  58.                 posicion = lista.cabecera;
  59.                 return true;
  60.             }
  61.             else return false;
  62.        
  63.     }
  64.    
  65.  
  66.     public boolean estaDentro(){
  67.        
  68.         return (posicion != lista.ultimo) && (posicion != lista.cabecera);
  69.        
  70.        
  71.     }
  72.    
  73.     //Devuelve el objeto de la posicion actual de la lista
  74.     public Object recuperar(){
  75.        
  76.         //Verifica que la posicion actual este dentro de la lista
  77.         if (estaDentro()) return posicion.dato;
  78.         else return null;
  79.        
  80.     }
  81.    
  82.    
  83.     //Deja "posicion" en el primer elemento de la lista
  84.     public void primero()
  85.     {
  86.         posicion=lista.cabecera.siguiente;
  87.     }
  88.    
  89.     //Avanza "posicion" un modo mas hacia adelante
  90.     public void avanzar(){
  91.         if (estaDentro()){
  92.         posicion=posicion.siguiente;
  93.         }
  94.     }
  95.    
  96.     public void retroceder(){
  97.         posicion = posicion.anterior;
  98.         }
  99.    
  100.     public void imprimir(ListaDobleEnlazada lst) {
  101.        
  102.         if (lst.esVacia())
  103.         {
  104.             System.out.println("Es Vacia");
  105.         }
  106.         else
  107.         {
  108.             //ListaEnlazadaIter itr = ListaEnlazadaIter(lst);
  109.             for( this.primero();this.estaDentro();this.avanzar() )
  110.             {
  111.                 System.out.println(""+this.recuperar());
  112.             }
  113.         }
  114.        
  115.     }
  116.    
  117. }
  118.  
  119.  
  120.  
  121. public class Nodo {
  122.    
  123.         //Se crea una referencia "dato" y una referencia "siguiente" y se las instancia null
  124.         public Object dato = null;
  125.         public Nodo anterior = null;
  126.         public Nodo siguiente = null;
  127.        
  128.    
  129.     public Nodo (){
  130.         this.dato = null;
  131.         this.siguiente = null;
  132.         this.anterior = null;
  133.        
  134.     }
  135.    
  136.     public Nodo (Object dato){
  137.         this.anterior = null;
  138.         this.dato = dato;
  139.         this.siguiente= null;
  140.         System.out.println("Gaston gil");
  141.     }
  142.    
  143. }
  144.  
  145. public class ListaDobleEnlazada {
  146.    
  147.     public Nodo cabecera;
  148.     public Nodo ultimo;
  149.    
  150.     public ListaDobleEnlazada(){
  151.        
  152.         cabecera = new Nodo();
  153.         ultimo = new Nodo();
  154.         cabecera.siguiente = ultimo;
  155.         ultimo.anterior = cabecera;
  156.        
  157.     }
  158.  
  159.     public boolean esVacia(){
  160.        
  161.         return cabecera.siguiente == ultimo;
  162.        
  163.     }
  164.    
  165.     public void vaciar(){
  166.         cabecera.siguiente = ultimo;
  167.         ultimo.anterior = cabecera;
  168.     }
  169.    
  170. }
RAW Paste Data
Top