ForHosting KIT · Ferramentas para dev

Índice pai de um heap binário

Em um heap numerado a partir de 0, o índice 5 tem o pai no 2, porque a parte inteira de 4 dividido por 2 é 2. A raiz não tem pai e é recusada em vez de ganhar uma posição inventada. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Índice
5
Você obtém
Indexação
Zero
Pai
2
Raiz
0

Um heap binário guardado em um vetor é a estrutura por trás de filas de prioridade, heapsort e muitas implementações de caminho mais curto. Todo livro lista uma fórmula do pai, mas as duas convenções de indexação discordam em uma unidade, e um desvio de um corrompe em silêncio o sift-up. Esta calculadora do índice do pai aceita o índice de vetor de um nó e a convenção de numeração — baseada em zero, com a raiz no índice zero, ou baseada em um, com a raiz no índice um — e devolve o pai com a forma fechada correspondente. Heaps baseados em zero usam pai igual ao piso de índice menos um sobre dois. Heaps baseados em um usam pai igual ao piso de índice sobre dois. A raiz não tem pai e é recusada em vez de inventar um slot negativo ou fictício.

Fórmulas do pai com indexação a partir de zero e de um

Um heap binário disposto em um vetor jamais armazena ponteiros para o pai ou para os filhos. O caminho de um nó até o pai é uma fórmula de índice em forma fechada, e essa fórmula depende de o vetor ser numerado a partir de zero ou a partir de um.

Na convenção baseada em zero usada por C, Java, JavaScript, Python e a maior parte dos heaps de produção, a raiz ocupa o índice zero, os filhos do nó i ficam em dois i mais um e dois i mais dois, e o pai de um nó que não é raiz é o piso de i menos um dividido por dois.

Na convenção baseada em um usada por muitos livros, o pseudocódigo no estilo CLRS e alguns gabaritos de competição, a raiz ocupa o índice um, os filhos ficam em dois i e dois i mais um, e o pai é simplesmente o piso de i dividido por dois. As duas identidades são exatas para índices inteiros; não são aproximações e não são intercambiáveis. Esta calculadora aplica a identidade correspondente depois que você escolhe a convenção, e recusa a raiz porque a raiz não tem pai.

Confundir as duas convenções é o erro clássico de um: tratar um vetor de linguagem como se partisse de um, ou um diagrama de livro como se partisse de zero, produz um pai a um slot da verdade e quebra em silêncio o sift-up e o decrease-key.

Contrato de entrada, formato da resposta e erros

Quando indexing é zero o índice deve ser pelo menos zero; quando indexing é one o índice deve ser pelo menos um. A raiz da convenção escolhida — zero em um heap baseado em zero, um em um heap baseado em um — é recusada com uma mensagem que nomeia essa raiz, porque inventar um pai em menos um ou circular até o último slot seria mentir. Exemplo: índice cinco com a convenção baseada em zero por omissão produz pai dois, porque o piso de quatro sobre dois é dois.

Exemplo: índice quatro com indexação baseada em um produz pai dois, enquanto o mesmo quatro em um heap baseado em zero teria pai um — esse par é toda a razão de a convenção ser um campo. A validação falha não é cobrada.

Onde uma calculadora do índice do pai se paga

Preparação para entrevistas, cursos de algoritmos e filas de prioridade de produção precisam do mesmo percurso até o pai, e discordam na numeração. Quem confere um traço de sift-up quer confirmar que o pai de cinco é dois em um vetor de linguagem e que o pai de quatro é dois em uma folha baseada em um, sem inverter a fórmula à mão em cada passo.

Avaliadores automáticos de lição de estruturas precisam de um oráculo determinístico que recuse a raiz por não ter pai, em vez de devolver um menos um silencioso que um envio defeituoso poderia tratar como acerto. Quem porta um heap de livro para uma linguagem baseada em zero, ou o inverso, pode fixar as duas convenções nos testes e caçar o desvio de um antes de publicar.

Visualizadores e andaimes de competição que desenham a árvore a partir de um vetor podem pedir o pai de cada slot que não é raiz e traçar arestas sem embutir duas cópias da fórmula. Mantenha os pedidos modestos, fixe o inteiro pai nos testes e você obtém percursos reproduzíveis para lição de casa, plugins LMS e workers na borda sem montar uma biblioteca local de heaps.

Traços de lição de casa e entrevistas

Confira o pai de qualquer slot do vetor ao traçar sift-up ou heapsort, alternando a numeração de livro baseada em um e os vetores de linguagem baseados em zero.

Avaliadores e oráculos de competição

Pontue questões de índices de heap com uma fórmula determinística do pai que recusa a raiz por não ter pai, em vez de inventar um índice fictício.

Portar heaps entre convenções

Fixe os percursos até o pai ao traduzir pseudocódigo CLRS baseado em um para um vetor de linguagem baseado em zero, ou o inverso, antes que o desvio de um seja publicado.

Como obter o pai de um nó em um vetor de heap binário?

Em heaps baseados em zero o pai é floor((index − 1) / 2). Em heaps baseados em um o pai é floor(index / 2).

Qual é a diferença entre indexação a partir de zero e a partir de um em um heap?

Heaps baseados em zero colocam a raiz no índice 0 e usam parent = floor((i − 1) / 2). Os baseados em um colocam a raiz no índice 1 e usam parent = floor(i / 2). O mesmo número pode nomear pais distintos conforme a convenção.

O que acontece se for pedido o pai da raiz?

A raiz (índice 0 se indexing for zero, índice 1 se indexing for one) não tem pai, e a calculadora não inventará um.

Qual é o pai do índice 5 em um heap binário baseado em zero?

Dois. floor((5 − 1) / 2) = 2. Esse mesmo índice em um heap baseado em um também é 2, mas o 4 é o par que diverge: pai 1 se for baseado em zero, pai 2 se for baseado em um.

Por que um erro de uma posição na fórmula do pai importa tanto?

Porque o resultado é uma posição real, vizinha do pai verdadeiro, então nada quebra à vista: a subida de elementos e a redução de prioridade comparam e trocam os elementos errados, e a ordem do heap se perde em silêncio.

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.

POSThttps://api.kit.forhosting.com/dev/heap-parent-index

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/dev/heap-parent-index \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"index":5}'
{
  "index": 5
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.heap_parent_index",
  "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.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Fórmulas do pai com indexação a partir de zero e de um

A resposta ecoa o índice e a convenção que você enviou, nomeia o pai, nomeia o índice da raiz dessa convenção, reescreve a fórmula como texto que você pode imprimir ao lado da resposta, e deixa is_root em false em cada percurso bem-sucedido para que os clientes tratem o sucesso como «existe um pai de verdade».

Contrato de entrada, formato da resposta e erros

Envie por POST um corpo JSON com index obrigatório: um inteiro finito que nomeia o slot do vetor do nó cujo pai você deseja. indexing é opcional e vale zero por omissão, ou seja um vetor baseado em zero com a raiz no índice zero; envie one quando o heap for numerado a partir de um. Os aliases i e node são aceitos para index, e convention para indexing, para que trechos copiados de anotações de aula ainda sejam analisados. Valores não finitos, booleanos, cadeias vazias e um index ausente falham com invalid_input. Índices acima do limite de inteiro seguro são recusados para que os números JSON permaneçam exatos na divisão piso. Em caso de sucesso o corpo inclui o index e o indexing ecoados, parent como o inteiro calculado, is_root em false, root como o slot raiz da convenção, e formula como pai igual ao piso de parêntese índice menos um fecha sobre dois, ou pai igual ao piso de índice sobre dois.

Onde uma calculadora do índice do pai se paga

Como isto é parse de nível A, cada chamada bem-sucedida custa o preço-base publicado US$ 0,002 sem tokens de modelo nem rede de saída, e a entrada inválida não consome saldo.

Quanto custa a calculadora do índice do pai em um heap binário?

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.

Ver a documentação completa do KIT →