O setor de urgência de um hospital realizou a triagem de 10 pacientes que se encontravam na sala de emergência. Em uma escala de zero à 100 de gravidade (quanto mais grave, maior o valor), os pacientes foram classificados a partir da ordem de chegada. Construa a Árvore Heap Máxima para priorizar o atendimento desses 10 pacientes.
Passo 1
Beleza, vamos lá! O exercício pede para a gente construir uma Árvore Heap Máxima com os dados de 10 pacientes classificados de acordo com a gravidade de seus casos, numa escala de 0 a 100. A matéria envolvida aqui é Estruturas de Dados, especificamente a estrutura de Heap Máximo, que nos ajuda a priorizar elementos de acordo com sua importância. Para resolver isso, vamos precisar entender como uma Heap Máxima funciona e como transformar a lista dada em uma árvore que siga essas regras.
Passo 2
Primeiro, vamos lembrar: uma Árvore Heap Máxima é uma estrutura binária onde o valor de cada nó é maior ou igual aos valores dos seus filhos. Isso garante que o maior elemento sempre esteja na raiz da árvore, facilitando a priorização. A estrutura também é completa, ou seja, todos os níveis da árvore são totalmente preenchidos, exceto possivelmente o último, que é preenchido da esquerda para a direita.
Passo 3
Vamos começar representando os pacientes em um array, que já foi dado:
Cada posição desse array pode ser associada a um índice, começando do 1 para facilitar os cálculos:
Índice 1: 53
Índice 2: 95
Índice 3: 20
Índice 4: 25
Índice 5: 14
Índice 6: 1
Índice 7: 86
Índice 8: 44
Índice 9: 29
Índice 10: 100
Passo 4
Agora, vamos construir a Heap Máxima a partir desse array. A ideia é reorganizar os elementos de forma que a propriedade de heap máximo seja mantida. Para isso, começamos a “ajustar” a árvore de baixo para cima, garantindo que cada subárvore siga a regra do heap máximo.
Passo 5
Começamos identificando o último nó que tem filhos, que no nosso caso é o índice 5 (valor 14). Vamos comparar esse nó com seus filhos e, se necessário, fazer trocas para manter o maior valor no topo da subárvore.
Passo 6
Fazemos isso recursivamente para cada nó, movendo do último para o primeiro. Ao final desse processo, garantimos que toda a árvore segue a propriedade do heap máximo.
Passo 7
Após ajustar todos os nós, a estrutura final da Heap Máxima fica assim:
100
/ \
95 86
/ \ / \
44 25 1 53
/ \
29 20
Resposta
A Árvore Heap Máxima construída para priorizar o atendimento dos 10 pacientes é: