Búsqueda por palabras claves

No se olviden de consultar por palabras claves! Ejemplo de Estructura de datos en java, tutorial de estructura de datos
Búsqueda personalizada

jueves, 4 de julio de 2019

sumar 2 arboles binarios


 
public void sumar(Nodo a, Nodo b) {
        if (a != null || b != null) {
            if (a != null && b != null) {
                insertar(a.getDato() + b.getDato());
                sumar(a.getIz(), b.getIz());
                sumar(a.getDer(), b.getDer());
            }else if(a!=null){
                insertar(a.getDato());
               sumar(a.getIz(), null);
               sumar(a.getDer(), null);
            }
            else{
                insertar(b.getDato());
            sumar(null, b.getIz());
            sumar(null, b.getDer());}
        }

    }

    void sumar(Arbol a, Arbol b) {

        sumar(a.raiz, b.raiz);
    }

jueves, 20 de junio de 2019

Determinar el altitud del arbol java con recursividad, niveles del arbol con recursividad.

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */
 
package pryarboles;

/**
 *
 * @author cisco
 */
public class Arbol {

    private Nodo raiz;

    public Arbol() {
        raiz = null;
    }

    public void insertar(int dato, Nodo actual) {
        if (actual == null) {
            raiz = new Nodo(dato);
        } else {
            if (dato < actual.getDato()) {
                if (actual.getIzquieda() == null) {
                    Nodo nuevo = new Nodo(dato);
                    actual.setIzquieda(nuevo);
                } else {
                    actual = actual.getIzquieda();
                    insertar(dato, actual);
                }

            } else {
                if (actual.getDerecha() == null) {
                    Nodo nuevo = new Nodo(dato);
                    actual.setDerecha(nuevo);
                } else {
                    insertar(dato, actual.getDerecha());
                }
            }
        }
    }

    public void insertar(int dato) {
        insertar(dato, raiz);
    }

    public int imprimirPreOrden(Nodo actual, int n, int mayor) {
        if (actual != null) {
           // System.out.println(actual.getDato() + " " + n);
           if(n>mayor)
               mayor=n;
           int a=imprimirPreOrden(actual.getIzquieda(), n + 1, mayor);
           int b=imprimirPreOrden(actual.getDerecha(), n + 1, mayor);
            if (a > b ) {
               return a;
            }
            return b;
            
           
        }
        return mayor;
    }

    public void imprimirPreOrden() {
        System.out.println(imprimirPreOrden(raiz, 1, 0));
    }

}