uoc.ei.tads
Class ArbreAbstracte<E>

java.lang.Object
  extended by uoc.ei.tads.ArbreAbstracte<E>
All Implemented Interfaces:
java.io.Serializable, Arbre<E>, Contenidor<E>
Direct Known Subclasses:
ArbreBinari, ArbreGeneralDelegImpl

public abstract class ArbreAbstracte<E>
extends java.lang.Object
implements Arbre<E>

Since:
1.5
See Also:
Serialized Form

Nested Class Summary
protected static class ArbreAbstracte.RecorregutOrdreBasic<E>
          Classe que proporciona el comportament bàsic per als tres recorreguts preordre, inordre i postordre.
protected static class ArbreAbstracte.RecorregutPerNivells<E>
          Classe que proporciona un recorregut de les posicions.
protected static class ArbreAbstracte.RecorregutPostordre<E>
          Classe que proporciona un recorregut de les posicions.
protected static class ArbreAbstracte.RecorregutPreordre<E>
          Classe que proporciona un recorregut de les posicions.
 
Constructor Summary
ArbreAbstracte()
           
 
Method Summary
 Iterador<E> elements()
          Accessor de lectura dels elements que hi ha al contenidor.
 boolean esFulla(Posicio<E> node)
          Comprova si l'arbre o subarbre té algún fill.
 boolean estaBuit()
          Comprova si el contenidor està buit.
 int nombreElems(Posicio<E> posicio)
           
 int nombreFills(Posicio<E> node)
          Mètode que retorna el nombre de fills d'un node.
 Recorregut<E> posicions()
          Mètode que soporta múltiples recorreguts, de les posicions del contenidor, simultanis i independents entre ells.
 Recorregut<E> recorregutPerNivells()
          Recorregut per nivells de les posicions de l'arbre.
 Recorregut<E> recorregutPostordre()
          Recorregut en postordre de les posicions de l'arbre.
 Recorregut<E> recorregutPreordre()
          Recorregut en preordre de les posicions de l'arbre.
 java.lang.String toString()
           
protected  void toString(java.lang.StringBuffer sb, Posicio<E> posicio)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface uoc.ei.tads.Arbre
afegir, arrel, esborrar, fills, intercanviar, reemplacar
 
Methods inherited from interface uoc.ei.tads.Contenidor
nombreElems
 

Constructor Detail

ArbreAbstracte

public ArbreAbstracte()
Method Detail

esFulla

public boolean esFulla(Posicio<E> node)
Comprova si l'arbre o subarbre té algún fill.

Specified by:
esFulla in interface Arbre<E>
Parameters:
node - posició de referència
Returns:
cert si la posició té algun fill i fals en cas contrari

estaBuit

public boolean estaBuit()
Description copied from interface: Contenidor
Comprova si el contenidor està buit.

Specified by:
estaBuit in interface Contenidor<E>
Returns:
cert si el contenidor està buit

nombreFills

public int nombreFills(Posicio<E> node)
Mètode que retorna el nombre de fills d'un node.

Parameters:
node - posició de referència
Returns:
quantitat de fills, o zero si és una fulla
Throws:
ExcepcioPosicioInvalida - si la posició és null o no vàlida

elements

public Iterador<E> elements()
Accessor de lectura dels elements que hi ha al contenidor. Retorna una enumeració. Es pot obtenir un llistat amb un parell de línies de codi:
 for ( Iterador it = tad.elements(); it.hiHaSeguent(); )
    System.out.println(it.seguent()); 
Enumerar és simplement enunciar l'una darrere l'altra (les coses d'una sèrie, les parts d'un tot). Però si el contenidor té definit algun tipus d'ordenació o de recorregut, l'enumeració ha de ser conseqüent i oferir els elements per ordre (FIFO, LIFO, inordre, etc.), sense alterar l'estat actual del contenidor.

Specified by:
elements in interface Contenidor<E>
Returns:
enumeració dels elements del contenidor preordre
Throws:
ExcepcioPosicioInvalida - si es vol obtenir el següent element de l'enumeració i no n'hi ha cap o no n'hi ha cap més
See Also:
Iterador.hiHaSeguent(), Iterador.seguent()

posicions

public Recorregut<E> posicions()
Mètode que soporta múltiples recorreguts, de les posicions del contenidor, simultanis i independents entre ells.

Specified by:
posicions in interface Arbre<E>
Returns:
enumeració de les posicions del contenidor per nivell

recorregutPreordre

public Recorregut<E> recorregutPreordre()
Description copied from interface: Arbre
Recorregut en preordre de les posicions de l'arbre.

Specified by:
recorregutPreordre in interface Arbre<E>
Returns:
enumeració de les posicions del contenidor preordre

recorregutPostordre

public Recorregut<E> recorregutPostordre()
Description copied from interface: Arbre
Recorregut en postordre de les posicions de l'arbre.

Specified by:
recorregutPostordre in interface Arbre<E>
Returns:
enumeració de les posicions del contenidor postordre

recorregutPerNivells

public Recorregut<E> recorregutPerNivells()
Description copied from interface: Arbre
Recorregut per nivells de les posicions de l'arbre.

Specified by:
recorregutPerNivells in interface Arbre<E>
Returns:
enumeració de les posicions del contenidor postordre

nombreElems

public int nombreElems(Posicio<E> posicio)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

toString

protected void toString(java.lang.StringBuffer sb,
                        Posicio<E> posicio)