Inserindo e buscando valor em Árvore Binária em java

package arvore;

public class No {
   
    int valor;
    No noEsquerda;
    No noDireita;
   
    public No(int valor){
        this.valor = valor;
    }
   
    public static No raiz;
   
   
    public static  void inserir(int valor){
        inserir(raiz, valor);
    }
   
    public static void inserir(No nodo, int valor){
        if(nodo == null){
            System.out.print("raiz " + valor + "\n");
            raiz = new No (valor);
        }else{
            if(valor < nodo.valor){
                if(nodo.noEsquerda != null){
                    inserir(nodo.noEsquerda, valor);
                }else{
                    System.out.println("Inserido " + valor + " a esquerda de " + nodo.valor);
                    nodo.noEsquerda = new No (valor);
                }
            }else{
                if(nodo.noDireita != null){
                    inserir(nodo.noDireita, valor);
                }else{
                    System.out.println("Inserido " + valor + " a direita de " + nodo.valor);
                    nodo.noDireita = new No (valor);
                }
            }
        }       
    }

public static boolean busca(No nodo, int v){
        if(nodo == null){
            return false;
        }else{
            if(nodo.valor == v){
                return true;
            }else{
                if(nodo.valor < v){
                    return busca(nodo.noDireita, v);
                }else{
                    return busca(nodo.noEsquerda, v);
                }
            }
        }
    }

public static  void main (String[] args){
       
        inserir(10);
        inserir(15);       
        inserir(5);
        inserir(4);
        inserir(25);
        inserir(7);

boolean encontrado = busca(raiz, 25);
        if (encontrado){
            System.out.println("\nEncontrado!\n");
        }else{
            System.out.println("\nNão encontrado ;(\n");
        }  
    }
}

Comentários

Postagens mais visitadas