Sunteți pe pagina 1din 3

public class Posicion implements Serializable{

protected File info;


protected Posicion hijoIzquierdo;
protected Posicion padre;
protected Posicion hermanoDerecho;

public Posicion() {
}
public boolean equals (Posicion o){
if(o==null) return false;
//Posicion p=(Posicion)o;
return(this==o);
}
}
////ahora la clase Arbol////
public class Arbol {

private Posicion arbol;


public Arbol(){
arbol=null;
}
public boolean vacio() {
return (nodoNulo(arbol));
}
public Posicion raiz() {
return arbol;
}
public Posicion padre(Posicion posicion) throws ArbolVacioException, NodoNul
oException {
//Posicion p=(Posicion)posicion;
if(vacio()) throw new ArbolVacioException();
if(nodoNulo(posicion))throw new NodoNuloException();
return posicion.padre;
}
public Posicion hijoIzquierdo(Posicion posicion) throws ArbolVacioException,
NodoNuloException {
// Posicion p=(Posicion)posicion;
if(vacio()) throw new ArbolVacioException();
if(nodoNulo(posicion))throw new NodoNuloException();
return posicion.hijoIzquierdo;
}
public Posicion hermanoDerecho(Posicion posicion) throws ArbolVacioException
, NodoNuloException {
//Posicion p=(Posicion)posicion;
if(vacio()) throw new ArbolVacioException();
if(nodoNulo(posicion))throw new NodoNuloException();
return posicion.hermanoDerecho;
}
public File info(Posicion posicion) throws ArbolVacioException, NodoNuloExce
ption {
//Posicion p=(Posicion)posicion;
if(vacio()) throw new ArbolVacioException();
if(nodoNulo(posicion))throw new NodoNuloException();
return posicion.info;
}
public void insertaHijo(Posicion posicion, File elemento) throws NodoNuloExc
eption {
//Posicion p=(Posicion)posicion;
if((!vacio())&&(nodoNulo(posicion)))throw new NodoNuloException();
Posicion aux=new Posicion();
aux.info=elemento;
aux.hijoIzquierdo=null;
if(vacio()){
aux.padre=null;
aux.hermanoDerecho=null;
arbol=aux;
}
else{
aux.padre=posicion;
aux.hermanoDerecho=posicion.hijoIzquierdo;
posicion.hijoIzquierdo=aux;
}
}
public void insertaHermano(Posicion posicion, File elemento) throws ArbolVac
ioException, NodoNuloException, RaizException {
//Posicion p=(Posicion)posicion;
if(vacio()) throw new ArbolVacioException();
if(nodoNulo(posicion)) throw new NodoNuloException();
if(posicion==raiz()) throw new RaizException();
Posicion aux=new Posicion();
aux.info=elemento;
aux.hijoIzquierdo=null;
aux.hermanoDerecho=posicion.hermanoDerecho;
posicion.hermanoDerecho=aux;
aux.padre=posicion.padre;
}
public void suprimeHijo(Posicion posicion) throws ArbolVacioException, NodoN
uloException {
//Posicion p=(Posicion)posicion;
if(vacio())throw new ArbolVacioException();
if(nodoNulo(posicion)) throw new NodoNuloException();
Posicion aux=hijoIzquierdo(posicion);
if(!nodoNulo(aux)){
while(!nodoNulo(hijoIzquierdo(aux)))
suprimeHijo(aux);
posicion.hijoIzquierdo=aux.hermanoDerecho;
}
}
public void suprimeHermano(Posicion posicion) throws ArbolVacioException, No
doNuloException {
// Posicion p=(Posicion)posicion;
if(vacio())throw new ArbolVacioException();
if(nodoNulo(posicion)) throw new NodoNuloException();
Posicion aux=hermanoDerecho(posicion);
if(!nodoNulo(aux)){
while(!nodoNulo(hijoIzquierdo(aux)))
suprimeHijo(aux);
posicion.hermanoDerecho=aux.hermanoDerecho;
}
}
public void modifica(Posicion posicion, File elemento) throws ArbolVacioExce
ption, NodoNuloException {
//Posicion p=(Posicion)posicion;
if(vacio()) throw new ArbolVacioException();
if(nodoNulo(posicion))throw new NodoNuloException();
posicion.info=elemento;
}
public boolean nodoNulo(Posicion posicion) {
return (posicion==null);
}
}

S-ar putea să vă placă și