Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // NODO
- import java.util.ArrayList;
- public class NodoAB {
- Integer info;
- private NodoAB izq;
- private NodoAB der;
- public NodoAB (int info){
- this.info = info;
- izq=der= null;
- }
- void agregar(NodoAB n) {
- if(izq==null)
- izq= n;
- else
- if(der==null)
- der= n;
- else
- izq.agregar(n);
- }
- public void eliminar(NodoAB padre, String izqDer, int info){
- if (this.info == info){
- if (esHoja()){
- if (izqDer == "izq"){ //vine por izquierda
- padre.izq = null;
- }else{
- padre.der = null;
- }
- }else{ // por hipotesis tengo derecha o izquieda
- if (izq != null ){ //tomo el maximo de la izquierda
- this.info = izq.maximo();
- izq.eliminar(this, "izq", this.info);
- }else{
- this.info = der.minimo();
- der.eliminar(this, "der", this.info);
- }
- }
- }else{ //iteracion
- if (izq != null ) izq.eliminar(this,"izq", info);
- if (der != null) der.eliminar(this,"der", info);
- }
- }
- private Integer minimo() {
- int min;
- if(this.izq==null)
- min= this.info;
- else
- min= this.izq.minimo();
- return min;
- }
- private Integer maximo() {
- int max;
- if(this.der==null)
- max= this.info;
- else
- max= this.der.maximo();
- return max;
- }
- boolean balanceado(){
- boolean ret;
- ret= Math.abs(altura(izq) - altura(der)) <=1;
- if (izq!=null)
- ret= ret && izq.balanceado();
- if (der!=null)
- ret= ret && der.balanceado();
- return ret;
- }
- public int altura(NodoAB n){ //caso base= null y arbol de un nodo
- if(n==null)
- return 0;
- else
- return 1 + Math.max( altura(n.der), altura(n.izq) );
- }
- int cantNodos(){
- int ret= 1;
- if (izq!=null)
- ret= ret + izq.cantNodos();
- if (der!=null)
- ret= ret + der.cantNodos();
- return ret;
- }
- public String toString(){
- String ret= info.toString();
- if(izq!=null)
- ret+= " " + izq.toString();
- if(der!=null)
- ret+= " " + der.toString();
- return ret;
- }
- public void imprimirPreOrden() { // PREORDEN= Actual + Pre(izq) + Pre(der)
- System.out.println(info + " ");
- if(izq!=null)
- izq.imprimirPreOrden();
- if(der!=null)
- der.imprimirPreOrden();
- }
- public void imprimirInOrden() { //INORDEN= In(izq) + Actual + In(der)
- if(izq!=null)
- izq.imprimirInOrden();
- System.out.println(info + " ");
- if(der!=null)
- der.imprimirInOrden();
- }
- public void toListPreOrden(ArrayList<Integer> lista) { // PREORDEN= Actual + Pre(izq) + Pre(der)
- lista.add(info);
- if(izq!=null)
- izq.toListInOrden(lista);
- if(der!=null)
- der.toListInOrden(lista);
- }
- public void toListInOrden(ArrayList<Integer> lista) { //INORDEN= In(izq) + Actual + In(der)
- if(izq!=null)
- izq.toListInOrden(lista);
- lista.add(info);
- if(der!=null)
- der.toListInOrden(lista);
- }
- public boolean esHoja() {
- return (izq == null) && (der == null);
- }
- }
- //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- //AB
- public class AB {
- ABnodo arbol;
- //Métodos
- //Revisa que el nodo raiz no sea null ;
- boolean vacio (){
- if (this.arbol==null) {
- return true ;
- }
- return false ;
- }
- void insertar (int nuevo){
- if (this.arbol==null) {
- this.arbol.dato = nuevo;
- }
- else {
- if (this.arbol.izq==null) {
- this.arbol.izq.dato = nuevo ;
- }
- if (this.arbol.der==null) {
- this.arbol.der.dato = nuevo ;
- }
- }
- }
- void imprimirInOrden(){
- //System.out.println(this.arbol.dato + "");
- if (this.arbol.izq!=null) {
- System.out.println(this.arbol.dato + this.arbol.izq.dato);
- }
- if (this.arbol.der!=null) {
- System.out.println(this.arbol.der.dato);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement