SóProvas


ID
2801395
Banca
CESGRANRIO
Órgão
Transpetro
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere uma árvore binária de busca (BST) com n (n>3) níveis (o nó raiz está no nível 1), 2n - 1 nós e todas as chaves diferentes. Suponha, ainda, que algum dos pais de duas folhas seja removido da árvore e, mais tarde, uma chave com o mesmo valor da chave do nó removido seja inserida na árvore.


Quantas são as comparações necessárias para fazer a busca e encontrar o nó cuja chave foi removida e depois reinserida?

Alternativas
Comentários
  • Não seria n + (n-1) comparações?

  • O texto da questão está incorreto, o número de nós é 2^n - 1 (2 elevado a n e não 2 vezes n).

    Retirando qualquer um dos nós que é pai de duas folhas (no penúltimo nível da árvore (n - 1)), ele terá que ser reinserido um nível abaixo do último nível, ou seja, o número de comparações necessárias será n+1.

  • Força Guerreiro!!!!!!

  • Considere a árvore com n = 3 níveis e 2³-1 = 7 nós:

    .......... ( 10 ) nível 1

    ........../ \

    .......( 6 )....( 15 ) nível 2

    ....../ \.........../ \

    ( 1 ) ( 8 ) ( 13 ) ( 20 ) nível 3

    Um nó é pai de duas folhas quando está no nível 2 (ou seja n-1), pois as folhas são aquelas que não contém filhos.

    Caso o nó 6 seja removido e reinserido, ele perderá seus filhos e virará um nó folha.

    .......... ( 10 ) nível 1

    ........../ \

    .......( 6 )......( 15 ) nível 2

    ....................../ \

    ................ ( 13 ) ( 20 ) nível 3

    Suponha que quero saber se 15 foi o nó que perdeu seus filhos. Para isso, comparo primeiro a raiz e vou descendo: para a esquerda se for menor ou igual e para a direita se for maior.

    .......... ( 10 ) 10 <= 15 +1 comparação

    ........../ \

    .......( 6 )......( 15 ) 10 <= 15 +1 comparação

    ....................../ \

    ................ ( 13 ) ( 20 )

    Porém, não é só porque achei o 15 que ele foi removido e reinserido. É preciso adicionalmente checar se o 15 é um nó nulo, ou seja, se seus dois filhos são inexistentes. Isso significa adicionar 2 ao total de comparações. Ou seja, no total são 4 (n+1): as duas primeiras para chegar ao nó e mais duas para checar seus filhos.