|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectuoc.ei.tads.ArbolAbstracto<E>
uoc.ei.tads.ArbolBinario<E>
uoc.ei.tads.ArbolBinarioEncadenadoImpl<E>
public class ArbolBinarioEncadenadoImpl<E>
Clase que implementa las operaciones de cualquiera arbol binario, el cual se caracteriza para organizar sus elementos (nodos) formando una jerarquía: todo nodo (excepto la raíz que se el jefe de la jerarquía) es descendiente de un nodo único, y puede ser ascendente de un máximo de dos nodos (cuando no tiene descendientes se nombra a hoja).
Nested Class Summary | |
---|---|
protected static class |
ArbolBinarioEncadenadoImpl.NodoArbol<EN>
Clase que implementa un nodo con dos encadenamientos a nodo. |
Nested classes/interfaces inherited from class uoc.ei.tads.ArbolBinario |
---|
ArbolBinario.RecorridoHijos<E>, ArbolBinario.RecorridoInorden<E>, ArbolBinario.RecorridoOrdenBasico<E>, ArbolBinario.RecorridoPorNiveles<E>, ArbolBinario.RecorridoPostorden<E>, ArbolBinario.RecorridoPreorden<E> |
Field Summary | |
---|---|
protected ArbolBinarioEncadenadoImpl.NodoArbol<E> |
root
Puntero a la raiz del arbol. |
Constructor Summary | |
---|---|
ArbolBinarioEncadenadoImpl()
|
Method Summary | |
---|---|
void |
borrar(Posicion<E> padre,
Posicion<E> hijo)
Borra el subárbol representado por la posición hijo, si se puede. |
protected ArbolBinarioEncadenadoImpl.NodoArbol<E> |
crearNodo(Posicion<E> padre,
E elem)
Crea un nuevo nodo, con dos encadenamientos a nodo, que almacena un elemento. |
boolean |
estaVacio()
Método para comprobar si el contenedor está vacío. |
Posicion<E> |
hijoDerecho(Posicion<E> nodo)
Accesor de lectura del hijo derecho de una posición del arbol. |
Posicion<E> |
hijoIzquierdo(Posicion<E> nodo)
Accesor de lectura del hijo izquierdo de una posición del arbol. |
Posicion<E> |
insertar(Posicion<E> padre,
E elem)
Añade un elemento como nuevo hijo de la posición recibida, si se puede. |
Posicion<E> |
insertarHijoDerecho(Posicion<E> padre,
E elem)
Añade un elemento como hijo derecho de la posición recibida, si se puede. |
Posicion<E> |
insertarHijoIzquierdo(Posicion<E> padre,
E elem)
Añade un elemento como hijo izquierdo de la posición recibida, si se puede. |
void |
intercambiar(Posicion<E> nodo1,
Posicion<E> nodo2)
Intercambia los elementos contenidos a las posiciones recibidas. |
int |
numElems()
Accesor de lectura del número de elementos que hay al contenedor. |
Posicion<E> |
raiz()
Accesor de lectura de la raíz del arbol, si hay. |
E |
reemplazar(Posicion<E> nodo,
E elem)
Reemplaza el elemento contenido a la posición recibida. |
protected void |
reemplazarSubarbol(Posicion<E> padre,
Posicion<E> hijo,
Posicion<E> nuevo)
Reemplaza el subárbol representado por la posición hijo, si se puede. |
Methods inherited from class uoc.ei.tads.ArbolBinario |
---|
elementos, esHoja, hijos, posiciones, recorridoInorden, recorridoPostorden, recorridoPreorden, toString |
Methods inherited from class uoc.ei.tads.ArbolAbstracto |
---|
numElems, numHijos, recorridoPorNiveles, toString |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected ArbolBinarioEncadenadoImpl.NodoArbol<E> root
Constructor Detail |
---|
public ArbolBinarioEncadenadoImpl()
Method Detail |
---|
public int numElems()
public boolean estaVacio()
estaVacio
in interface Contenedor<E>
estaVacio
in class ArbolAbstracto<E>
public Posicion<E> raiz() throws ExcepcionContenedorVacio
ExcepcionContenedorVacio
public Posicion<E> insertar(Posicion<E> padre, E elem)
padre
- posición de referenciaelem
- elemento que se quiere añadir al arbol
ExcepcionPosicionInvalida
- si no cabe ningún hijo máspublic Posicion<E> insertarHijoIzquierdo(Posicion<E> padre, E elem)
insertarHijoIzquierdo
in class ArbolBinario<E>
padre
- posición de referenciaelem
- elemento que se quiere añadir al arbol
ExcepcionPosicionInvalida
- si alguna posición es null o no
válidapublic Posicion<E> insertarHijoDerecho(Posicion<E> padre, E elem)
insertarHijoDerecho
in class ArbolBinario<E>
padre
- posición de referenciaelem
- elemento que se quiere añadir al arbol
ExcepcionPosicionInvalida
- si alguna posición es null o no
válidapublic Posicion<E> hijoIzquierdo(Posicion<E> nodo)
hijoIzquierdo
in class ArbolBinario<E>
nodo
- posición de referencia
ExcepcionPosicionInvalida
- si la posición es null o no
válidapublic Posicion<E> hijoDerecho(Posicion<E> nodo)
hijoDerecho
in class ArbolBinario<E>
nodo
- posición de referencia
ExcepcionPosicionInvalida
- si la posición es null o no
válidapublic void borrar(Posicion<E> padre, Posicion<E> hijo)
padre
- posición del padre; puede ser nullhijo
- posición del hijo
ExcepcionPosicionInvalida
- si alguna posición es no válidapublic E reemplazar(Posicion<E> nodo, E elem)
elem
- nuevo elementonodo
- posición de referencia
ExcepcionPosicionInvalida
- si la posición es null o no
válidapublic void intercambiar(Posicion<E> nodo1, Posicion<E> nodo2)
nodo1
- primera de las dos posiciones de referencianodo2
- segunda de las dos posiciones de referencia
ExcepcionPosicionInvalida
- si alguna posición es null o no
válidaprotected void reemplazarSubarbol(Posicion<E> padre, Posicion<E> hijo, Posicion<E> nuevo)
padre
- posición del padre; puede ser nullhijo
- posición del hijonuevo
- posición con el nuevo arbol o subárbol; puede ser null
ExcepcionPosicionInvalida
- si alguna posición es no válidaprotected ArbolBinarioEncadenadoImpl.NodoArbol<E> crearNodo(Posicion<E> padre, E elem)
elem
- elemento que se quiere guardar al nodo
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |