uoc.ei.tads
Class ArbolAbstracto.RecorridoPostorden<E>

java.lang.Object
  extended by uoc.ei.tads.ArbolAbstracto.RecorridoOrdenBasico<E>
      extended by uoc.ei.tads.ArbolAbstracto.RecorridoPostorden<E>
All Implemented Interfaces:
java.io.Serializable, Recorrido<E>
Enclosing class:
ArbolAbstracto<E>

protected static class ArbolAbstracto.RecorridoPostorden<E>
extends ArbolAbstracto.RecorridoOrdenBasico<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.

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

Field Summary
 
Fields inherited from class uoc.ei.tads.ArbolAbstracto.RecorridoOrdenBasico
arbol, pila
 
Constructor Summary
ArbolAbstracto.RecorridoPostorden(Arbol<E> arbol)
          Constructor.
 
Method Summary
protected  void apilaDescendientesConMasPrioridad(Posicion<E> padre)
          En el caso del recorrido postorden, dado un nodo, este siempre aparecerá después de que los sus descendientes en el recorrido, por lo tanto, todos los hijos de un nodo tienen más prioridad que él.
protected  void apilaDescendientesConMenosPrioridad(Posicion<E> padre)
          En el caso del recorrido postorden un nodo no tiene descendientes con menos prioridad.
protected  void apilaHijos(Posicion<E> padre)
          Este método apila los hijos de un nodo en el orden en el que están definidos.
 Posicion<E> siguiente()
          Primero avanza, si se puede, y después retorna la posición.
protected  boolean yaDesplegadosTotalmente(Posicion<E> nodo)
           
 
Methods inherited from class uoc.ei.tads.ArbolAbstracto.RecorridoOrdenBasico
haySiguiente
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ArbolAbstracto.RecorridoPostorden

public ArbolAbstracto.RecorridoPostorden(Arbol<E> arbol)
Constructor.

Parameters:
arbol - El arbol a recorrer.
Method Detail

apilaDescendientesConMasPrioridad

protected void apilaDescendientesConMasPrioridad(Posicion<E> padre)
En el caso del recorrido postorden, dado un nodo, este siempre aparecerá después de que los sus descendientes en el recorrido, por lo tanto, todos los hijos de un nodo tienen más prioridad que él.

Specified by:
apilaDescendientesConMasPrioridad in class ArbolAbstracto.RecorridoOrdenBasico<E>

apilaDescendientesConMenosPrioridad

protected void apilaDescendientesConMenosPrioridad(Posicion<E> padre)
En el caso del recorrido postorden un nodo no tiene descendientes con menos prioridad.

Specified by:
apilaDescendientesConMenosPrioridad in class ArbolAbstracto.RecorridoOrdenBasico<E>

apilaHijos

protected void apilaHijos(Posicion<E> padre)
Description copied from class: ArbolAbstracto.RecorridoOrdenBasico
Este método apila los hijos de un nodo en el orden en el que están definidos.

Overrides:
apilaHijos in class ArbolAbstracto.RecorridoOrdenBasico<E>

siguiente

public Posicion<E> siguiente()
Description copied from class: ArbolAbstracto.RecorridoOrdenBasico
Primero avanza, si se puede, y después retorna la posición. Si no hay siguiente posición lanza una excepción.

Specified by:
siguiente in interface Recorrido<E>
Overrides:
siguiente in class ArbolAbstracto.RecorridoOrdenBasico<E>
Returns:
siguiente posición

yaDesplegadosTotalmente

protected boolean yaDesplegadosTotalmente(Posicion<E> nodo)