uoc.ei.tads
Class ListaEncadenada.RecorridoUnidireccionalLista<E>

java.lang.Object
  extended by uoc.ei.tads.ListaEncadenada.RecorridoUnidireccionalLista<E>
All Implemented Interfaces:
java.io.Serializable, Recorrido<E>
Direct Known Subclasses:
ListaDoblementeEncadenada.RecorridoBidireccionalLista
Enclosing class:
ListaEncadenada<E>

protected static class ListaEncadenada.RecorridoUnidireccionalLista<E>
extends java.lang.Object
implements Recorrido<E>

Clase que proporciona un recorrido de las posiciones. Basada en el pattern Iterator, soporta múltiples recorridos simultáneos y independientes del contenedor. Es sensible a eventuales alteraciones de la estructura de posiciones y se actualiza de acuerdo con los cambios.

See Also:
Recorrido.haySiguiente(), Recorrido.siguiente(), Serialized Form

Field Summary
protected  ListaEncadenada.NodoEncadenado<E> nodoActual
          Nodo actual.
protected  boolean tieneSiguiente
          puede haber siguiente (control del encadenamiento circular).
protected  ListaEncadenada.NodoEncadenado<E> ultimo
          Último nodo de la lista.
 
Constructor Summary
ListaEncadenada.RecorridoUnidireccionalLista(ListaEncadenada<E> llista)
           
 
Method Summary
 boolean haySiguiente()
          Comprueba si hay una primera o siguiente posición.
 Posicion<E> siguiente()
          Primero avanza, si se puede, y después retorna la posición.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nodoActual

protected ListaEncadenada.NodoEncadenado<E> nodoActual
Nodo actual.


ultimo

protected ListaEncadenada.NodoEncadenado<E> ultimo
Último nodo de la lista.


tieneSiguiente

protected boolean tieneSiguiente
puede haber siguiente (control del encadenamiento circular).

Constructor Detail

ListaEncadenada.RecorridoUnidireccionalLista

public ListaEncadenada.RecorridoUnidireccionalLista(ListaEncadenada<E> llista)
Method Detail

haySiguiente

public boolean haySiguiente()
Comprueba si hay una primera o siguiente posición. Es sensible a eventuales alteraciones de la estructura de posiciones. Retorna falso si está vacío o ya se ha visitado la última posición.

Specified by:
haySiguiente in interface Recorrido<E>
Returns:
cierto o falso, según si se puede avanzar o no se puede

siguiente

public Posicion<E> siguiente()
Primero avanza, si se puede, y después retorna la posición.

Specified by:
siguiente in interface Recorrido<E>
Returns:
siguiente posición
Throws:
ExcepcionPosicionInvalida - si la siguiente posición no existe