uoc.ei.tads
Class ArbreBinari.RecorregutInordre<E>

java.lang.Object
  extended by uoc.ei.tads.ArbreBinari.RecorregutOrdreBasic<E>
      extended by uoc.ei.tads.ArbreBinari.RecorregutInordre<E>
All Implemented Interfaces:
java.io.Serializable, Recorregut<E>
Direct Known Subclasses:
ArbreBinari.RecorregutPostordre
Enclosing class:
ArbreBinari<E>

protected static class ArbreBinari.RecorregutInordre<E>
extends ArbreBinari.RecorregutOrdreBasic<E>

Classe que proporciona un recorregut de les posicions. Basada en el pattern Iterator, soporta múltiples recorreguts simultanis i independents del contenidor. És sensible a eventuals alteracions de l'estructura de posicions.

See Also:
Recorregut.hiHaSeguent(), Recorregut.seguent(), Serialized Form

Field Summary
 
Fields inherited from class uoc.ei.tads.ArbreBinari.RecorregutOrdreBasic
arbre, pila
 
Constructor Summary
ArbreBinari.RecorregutInordre(ArbreBinari<E> arbre)
          Constructor.
 
Method Summary
protected  void empilaDescendentsAmbMenysPrioritat(Posicio<E> pare)
          Els descendents amb menys prioritat per al cas del recorregut inordre són el fill dret i els seus descendents.
protected  void empilaDescendentsAmbMesPrioritat(Posicio<E> pare)
          Els descendents amb més prioritat per al cas del recorregut inordre són el fill esquerre i els seus descendents.
 
Methods inherited from class uoc.ei.tads.ArbreBinari.RecorregutOrdreBasic
hiHaSeguent, seguent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ArbreBinari.RecorregutInordre

public ArbreBinari.RecorregutInordre(ArbreBinari<E> arbre)
Constructor.

Parameters:
arbre - L'arbre a recórrer.
Method Detail

empilaDescendentsAmbMesPrioritat

protected void empilaDescendentsAmbMesPrioritat(Posicio<E> pare)
Els descendents amb més prioritat per al cas del recorregut inordre són el fill esquerre i els seus descendents. Per tant, empilem el fill esquerre. Posteriorment, si el fill esquerre té algun descendent amb més prioritat, l'haurem d'empilar també. Això resulta en, en aquest cas, empilar els descendents esquerre; es a dir, el fill esquerre, el fill esquerre del fill esquerre, etc.

Specified by:
empilaDescendentsAmbMesPrioritat in class ArbreBinari.RecorregutOrdreBasic<E>

empilaDescendentsAmbMenysPrioritat

protected void empilaDescendentsAmbMenysPrioritat(Posicio<E> pare)
Els descendents amb menys prioritat per al cas del recorregut inordre són el fill dret i els seus descendents. Per tant, empilem el fill dret. Acte seguit passem a empilar els descendents del fill dret que tenen més prioritat que aquest.

Specified by:
empilaDescendentsAmbMenysPrioritat in class ArbreBinari.RecorregutOrdreBasic<E>