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

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

protected static class ArbolAbstracto.RecorridoPreorden<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.RecorridoPreorden(Arbol<E> arbol)
          Constructor.
 
Method Summary
protected  void apilaDescendientesConMasPrioridad(Posicion<E> padre)
          En el caso del recorrido preorden, dado un nodo, este siempre aparecerá antes de que sus descendientes en el recorrido, por lo tanto, un nodo no tiene descendientes con más prioridad que él.
protected  void apilaDescendientesConMenosPrioridad(Posicion<E> padre)
          En el caso del recorrido preorden, los descendientes con menos prioridad que un nodo son sus dos hijos (y a la vez los descendientes de estos). tenemos bastante con empilar los dos hijos, pues posteriormente cuando llegamos en el recorrido a estos hijos ya los trataremos y ya trataremos sus hijos adecuadamente.
 
Methods inherited from class uoc.ei.tads.ArbolAbstracto.RecorridoOrdenBasico
apilaHijos, haySiguiente, siguiente
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ArbolAbstracto.RecorridoPreorden

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

Parameters:
arbol - El arbol a recorrer.
Method Detail

apilaDescendientesConMasPrioridad

protected void apilaDescendientesConMasPrioridad(Posicion<E> padre)
En el caso del recorrido preorden, dado un nodo, este siempre aparecerá antes de que sus descendientes en el recorrido, por lo tanto, un nodo no tiene descendientes con 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 preorden, los descendientes con menos prioridad que un nodo son sus dos hijos (y a la vez los descendientes de estos). tenemos bastante con empilar los dos hijos, pues posteriormente cuando llegamos en el recorrido a estos hijos ya los trataremos y ya trataremos sus hijos adecuadamente.

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