Nós máximos em árvore binária
Uma árvore binária perfeita de altura 3 tem 15 nós, 8 deles folhas, distribuídos em 1, 2, 4 e 8 por nível. Informe qualquer altura de 0 a 52 e receba o máximo de nós, folhas e nós internos. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Altura
- 3
- Máximo de nós
- 15
- Máximo de folhas
- 8
- Máximo de nós internos
- 7
- Nós no nível
- 1, 2, 4, 8
Quando você dimensiona uma árvore binária completa ou perfeita para capacidade, preparação de entrevistas ou estruturas baseadas em heap, a primeira pergunta costuma ser quantos nós e quantas folhas cabem em uma altura dada. Esta calculadora de nós máximos de árvore binária aceita uma altura inteira não negativa sob a convenção padrão de base zero —uma árvore de um único nó tem altura zero— e devolve os máximos em forma fechada de uma árvore binária perfeita: nós totais iguais a dois elevado à altura mais um, menos um, e folhas iguais a dois elevado à altura. Também informa os nós internos e a contagem exata por nível para raciocinar sobre memória, comprimento de array de um heap binário ou fatores de ramificação sem desenhar a árvore à mão.
Convenção de altura e máximos em forma fechada
A altura da árvore binária é definida aqui como o número de arestas do caminho mais longo da raiz até uma folha, de modo que uma raiz sozinha tem altura zero, uma raiz com dois filhos tem altura um, e uma árvore perfeita com quatro níveis de nós tem altura três. Sob essa convenção toda árvore binária perfeita de altura h é única em estrutura: o nível zero guarda um nó, o nível um guarda dois, e o nível i guarda dois elevado a i nós, até o nível h.
Somar a série geométrica de i igual a zero até h produz dois elevado a h mais um, menos um nós totais —a sequência clássica 1, 3, 7, 15, 31—. O último nível sozinho guarda dois elevado a h folhas, que é também o máximo de folhas que qualquer árvore binária de altura h pode ter quando todo nó interno está cheio e a árvore está completa por baixo. Os nós internos equivalem a nós totais menos folhas, o que se simplifica a dois elevado a h menos um.
Se o seu material de origem rotula uma árvore de um único nó como altura um, subtraia um antes de chamar a calculadora para que as fórmulas permaneçam coerentes.
Onde a matemática de capacidade da árvore binária rende
A preparação de entrevistas e os cursos de algoritmos usam uma calculadora de nós máximos de árvore binária para conferir respostas de dever sobre árvores perfeitas e para converter entre altura, contagens de nível e comprimentos de array de heaps binários em memória contígua. Engenheiros de sistemas dimensionam árvores de fan-out de mensagens, árvores de decisão de profundidade fixa e layouts tipo segment tree perguntando quantas folhas ficam na profundidade h antes de alocar buffers ou escolher um teto de altura.
Código de jogos e simulação que constrói partições binárias completas do espaço frequentemente precisa do orçamento de nós de antemão para que object pools e buffers GPU batam com o máximo teórico. Validação falha não consome saldo. Mantenha height no intervalo documentado, fixe os campos inteiros nos testes e você obtém cifras de capacidade reproduzíveis para salas de aula, plugins LMS e edge workers sem montar uma biblioteca de grafos própria.
Casos de uso
Checagens de entrevista e dever de casa
Verifique nós e folhas máximos de uma árvore binária perfeita de altura h frente às fórmulas do manual sem erros de altura por um.
Capacidade de heap binário e arrays
Calcule quantas posições de array um heap binário completo de altura h precisa antes de alocar armazenamento ou escolher um limite de profundidade.
Dimensionamento de fan-out e árvores de decisão
Planeje a capacidade de folhas e o orçamento de nós internos para partições binárias de profundidade fixa, árvores de mensagens ou divisões de espaço em simulação.
Perguntas frequentes
Quantas folhas uma árvore binária de altura h pode ter?
No máximo 2^h folhas em uma árvore binária perfeita. Esse também é o tamanho do último nível quando todos os níveis estão cheios.
Por que a altura está limitada a 52?
Para que 2^(h+1)−1 permaneça dentro dos inteiros seguros de JavaScript (≤ 2^53−1). Alturas maiores perderiam precisão inteira exata neste runtime.
Qual é a fórmula do número máximo de nós de uma árvore binária?
Para uma altura h, contada em arestas, é 2^(h+1) − 1: cada nível tem o dobro de nós do anterior e, somando todos, sai a sequência 1, 3, 7, 15, 31.
E se o meu livro disser que um único nó tem altura 1?
Esse livro conta níveis em vez de arestas. Subtraia um dessa altura antes de informá-la para manter as fórmulas coerentes: aqui uma raiz sozinha tem altura 0 e uma raiz com dois filhos, altura 1.
Quantos nós internos tem uma árvore binária perfeita?
Sempre um a menos que o número de folhas: 2^h − 1 nós internos contra 2^h folhas. Uma árvore de altura 0 é um único nó que também é folha, então não tem nenhum nó interno.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev/binary-tree-max-nodes \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"height":3}'const res = await fetch("https://api.kit.forhosting.com/dev/binary-tree-max-nodes", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"height": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/binary-tree-max-nodes",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"height": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/binary-tree-max-nodes", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"height":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"height":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/binary-tree-max-nodes", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"height": 3
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.binary_tree_max_nodes",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Alturas inválidas falham com invalid_input e não são cobradas.
Convenção de altura e máximos em forma fechada
Essas identidades são as que manuais, entrevistas de algoritmos e fórmulas de capacidade de heap usam; este endpoint as codifica para que você não erre o expoente nem confunda altura em base zero com a contagem de níveis em base um de algumas referências antigas.
Contrato de entrada, campos de resposta e limites seguros
Envie por POST um corpo JSON com um campo obrigatório: height, um número inteiro de zero a cinquenta e dois inclusive. Os valores podem chegar como inteiros JSON ou strings numéricas; campos ausentes, não inteiros, negativos, não finitos e alturas acima de cinquenta e dois falham com invalid_input indicando o problema. O teto superior mantém max_nodes igual a dois elevado à altura mais um menos um dentro dos inteiros seguros de JavaScript (no máximo dois elevado a cinquenta e três menos um), de modo que goldens e clientes comparam inteiros exatos e não aproximações de ponto flutuante. Em caso de sucesso o corpo ecoa height e devolve max_nodes, max_leaves, max_internal_nodes, nodes_at_level como um array de comprimento altura mais um onde o índice i é dois elevado a i, e uma string formula curta que reafirma as formas fechadas. Exemplo: altura três produz max_nodes quinze, max_leaves oito, max_internal_nodes sete e nodes_at_level um, dois, quatro, oito. Altura zero produz um único nó que também é folha: max_nodes um, max_leaves um, max_internal_nodes zero. Combine os números com o seu próprio desenho ou modelo de memória se precisar de diagramas de layout; este endpoint só devolve as contagens de capacidade e o detalhamento por nível, nunca um objeto de árvore serializado nem uma imagem de grafo.
Onde a matemática de capacidade da árvore binária rende
Como a implementação é parse pura de nível A, cada chamada bem-sucedida custa o preço base publicado US$ 0,002 sem tokens de modelo e sem rede de saída.
Perguntas técnicas
Qual é o número máximo de nós em uma árvore binária de altura h?
Com altura zero para um único nó, max_nodes vale 2^(h+1)−1. Envie height como inteiro 0..52; a API devolve max_nodes, max_leaves (2^h) e nodes_at_level.
A altura zero é permitida?
Sim. Altura 0 é uma árvore de um único nó: max_nodes 1, max_leaves 1, max_internal_nodes 0. Alturas negativas são rejeitadas como invalid_input.
Quanto custa a calculadora de nós máximos de árvore binária?
A ferramenta do navegador é gratuita. Pedidos API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.