|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectuoc.ei.tads.ArbreAbstracte<E>
uoc.ei.tads.ArbreBinari<E>
public abstract class ArbreBinari<E>
Classe abstracta que defineix les operacions de qualsevol arbre binari, el qual es caracteritza per organitzar els seus elements (nodes) formant una jerarquia: tot node (tret de l'arrel que es el cap de la jerarquia) és descendent d'un node únic, i pot ser ascendent d'un màxim de dos nodes (quan no té descendents s'anomena fulla). Implementa els recorreguts habituals i altres operacions auxiliars que es deriven de les operacions bàsiques ja definides en aquest nivell de la jerarquia. Implementa també la interfície Serializable per a poder convertir a cadenes o fluxes de bytes (streams) els objectes del contenidor i gravar-los o transmetre'ls.
Nested Class Summary | |
---|---|
protected static class |
ArbreBinari.RecorregutFills<E>
Classe que proporciona un recorregut de les posicions filles. |
protected static class |
ArbreBinari.RecorregutInordre<E>
Classe que proporciona un recorregut de les posicions. |
protected static class |
ArbreBinari.RecorregutOrdreBasic<E>
Classe que proporciona el comportament bàsic per als tres recorreguts preordre, inordre i postordre. |
protected static class |
ArbreBinari.RecorregutPerNivell<E>
Classe que proporciona un recorregut de les posicions. |
protected static class |
ArbreBinari.RecorregutPostordre<E>
Classe que proporciona un recorregut de les posicions. |
protected static class |
ArbreBinari.RecorregutPreordre<E>
Classe que proporciona un recorregut de les posicions. |
Nested classes/interfaces inherited from class uoc.ei.tads.ArbreAbstracte |
---|
ArbreAbstracte.RecorregutPerNivells<E> |
Constructor Summary | |
---|---|
ArbreBinari()
|
Method Summary | |
---|---|
abstract Posicio<E> |
afegirFillDret(Posicio<E> pare,
E elem)
Afegeix un element com a fill dret de la posició rebuda, si es pot. |
abstract Posicio<E> |
afegirFillEsquerre(Posicio<E> pare,
E elem)
Afegeix un element com a fill esquerre de la posició rebuda, si es pot. |
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. |
abstract Posicio<E> |
fillDret(Posicio<E> pos)
Accessor de lectura del fill dret d'una posició de l'arbre. |
abstract Posicio<E> |
fillEsquerre(Posicio<E> pos)
Accessor de lectura del fill esquerre d'una posició de l'arbre. |
Recorregut<E> |
fills(Posicio<E> pare)
Mètode que soporta múltiples recorreguts, de les posicions filles de la posició de referència, simultanis i independents entre ells. |
Recorregut<E> |
posicions()
Mètode que soporta múltiples recorreguts, de les posicions del contenidor, simultanis i independents entre ells. |
Recorregut<E> |
recorregutInordre()
Mètode que soporta múltiples recorreguts, de les posicions del contenidor, simultanis i independents entre ells. |
Recorregut<E> |
recorregutPostordre()
Mètode que soporta múltiples recorreguts, de les posicions del contenidor, simultanis i independents entre ells. |
Recorregut<E> |
recorregutPreordre()
Mètode que soporta múltiples recorreguts, de les posicions del contenidor, simultanis i independents entre ells. |
protected void |
toString(java.lang.StringBuffer sb,
Posicio<E> posicio)
|
Methods inherited from class uoc.ei.tads.ArbreAbstracte |
---|
estaBuit, nombreElems, nombreFills, recorregutPerNivells, toString |
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, intercanviar, reemplacar |
Methods inherited from interface uoc.ei.tads.Contenidor |
---|
nombreElems |
Constructor Detail |
---|
public ArbreBinari()
Method Detail |
---|
public abstract Posicio<E> afegirFillEsquerre(Posicio<E> pare, E elem)
pare
- posició de referènciaelem
- element que es vol afegir a l'arbre
public abstract Posicio<E> afegirFillDret(Posicio<E> pare, E elem)
pare
- posició de referènciaelem
- element que es vol afegir a l'arbre
public abstract Posicio<E> fillEsquerre(Posicio<E> pos)
pos
- posició de referència
public abstract Posicio<E> fillDret(Posicio<E> pos)
pos
- posició de referència
public Recorregut<E> fills(Posicio<E> pare)
pare
- posició de referència
ExcepcioPosicioInvalida
- si la posició és null o no
vàlidapublic boolean esFulla(Posicio<E> node)
esFulla
in interface Arbre<E>
esFulla
in class ArbreAbstracte<E>
node
- posició de referència
ExcepcioPosicioInvalida
- si la posició és null o no
vàlidapublic Iterador<E> elements()
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.
elements
in interface Contenidor<E>
elements
in class ArbreAbstracte<E>
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ésIterador.hiHaSeguent()
,
Iterador.seguent()
public Recorregut<E> posicions()
posicions
in interface Arbre<E>
posicions
in class ArbreAbstracte<E>
ArbreBinari.RecorregutPerNivell
public Recorregut<E> recorregutPreordre()
recorregutPreordre
in interface Arbre<E>
recorregutPreordre
in class ArbreAbstracte<E>
ArbreBinari.RecorregutPreordre
public Recorregut<E> recorregutInordre()
ArbreBinari.RecorregutInordre
public Recorregut<E> recorregutPostordre()
recorregutPostordre
in interface Arbre<E>
recorregutPostordre
in class ArbreAbstracte<E>
ArbreBinari.RecorregutPostordre
protected void toString(java.lang.StringBuffer sb, Posicio<E> posicio)
toString
in class ArbreAbstracte<E>
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |