Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: JavaScript ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca

Estruturas de dados em JavaScript - Como pesquisar um nó em uma árvore binária de busca usando um método recursivo em JavaScript

Quantidade de visualizações: 1577 vezes
Nesta dica mostrarei um exemplo completo de como pesquisar um valor em uma árvore binária de busca em JavaScript. Note que o exemplo usa apenas valores numéricos, mas você não terá dificuldades para modificar a classe Nó para os dados que você precisar.

Vamos começar com a classe No, ou seja, a classe que representa os nós da árvore binária e que contém o valor numérico e também as referências para os nós esquerdo e direito.

Código para No.js:

// implementação da classe No
class No{
  // construtor do nó
  constructor(valor){
    this.valor = valor; // valor do nó  
    this.esquerdo = null; // filho esquerdo


Agora que já temos a classe No devidamente colocada em um arquivo .js separado, vamos criar a classe ArvoreBinariaBusca. Veja:

Código para ArvoreBinariaBusca.js:

// implementação da classe ArvoreBinariaBusca
class ArvoreBinariaBusca{
  raiz = null; // referência para a raiz da árvore

  // método usado para inserir um novo nó na árvore
  // retorna true se o nó for inserido com sucesso e false
  // se o elemento
  // não puder ser inserido (no caso de já existir um 
  // elemento igual)
  inserir(valor){
   // a árvore ainda está vazia?
   if(this.raiz == null){
     // vamos criar o primeiro nó e definí-lo como 
     // a raiz da árvore
     this.raiz = new No(valor); // cria um novo nó 
   }
   else{
     // localiza o nó pai do novo nó
     var pai = null;
     var noAtual = this.raiz; // começa a busca pela raiz
 
     // enquanto o nó atual for diferente de null
     while(noAtual != null){
       // o valor sendo inserido é menor que o nó atual?
       if(valor < noAtual.valor) {
         pai = noAtual;
         // vamos inserir do lado esquerdo
         noAtual = noAtual.esquerdo;
       }
       // o valor sendo inserido é maior que o nó atual
       else if(valor > noAtual.valor){
         pai = noAtual;
         // vamos inserir do lado direito
         noAtual = noAtual.direito;
       }
       else{
         // um nó com este valor foi encontrado 
         return false;
       } 
     }
 
     // cria o novo nó e o adiciona como filho do nó pai
     if(valor < pai.valor){
       pai.esquerdo = new No(valor);
     }
     else{
       pai.direito = new No(valor);
     }
   }
 
   // retorna true para indicar que o novo nó foi inserido


E finalmente o código para a página HTML que contém uma função JavaScript que permite testar a árvore binária de busca:

<html>
<head>
  <title>Árvore Binária de Busca em JavaScript</title>
</head>
 
<body onload="testarArvore()">

<script type="text/javascript">
  function testarArvore(){
    // vamos criar um novo objeto da classe ArvoreBinariaBusca
    arvore = new ArvoreBinariaBusca();
  
    // vamos inserir 5 valores na árvore
    arvore.inserir(8);
    arvore.inserir(43);
    arvore.inserir(2);
    arvore.inserir(18);
    arvore.inserir(71);
  
    var valorPesquisa = 18;
    // obtém um objeto da classe NoArvore a partir do 
    // método pesquisar() da classe ArvoreBinariaBusca
    var res = arvore.pesquisar(valorPesquisa);


Link para compartilhar na Internet ou com seus amigos:

Desafios, Exercícios e Algoritmos Resolvidos de JavaScript

Veja mais Dicas e truques de JavaScript

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 29 usuários muito felizes estudando em nosso site.