Middle
Quais são as classificações de heaps no contexto de estruturas de dados?
sobes.tech IA
Resposta da IA
No contexto das estruturas de dados, por "montículo" (Heap) entende-se geralmente um montículo binário (Binary Heap), que possui as seguintes classificações:
-
Por tipo de ordenação:
- Montículo mínimo (Min-Heap): O valor de cada nó é menor ou igual aos valores dos seus nós filhos. A raiz é o elemento mínimo.
- Montículo máximo (Max-Heap): O valor de cada nó é maior ou igual aos valores dos seus nós filhos. A raiz é o elemento máximo.
-
Por completude da árvore:
- Montículo binário completo (Complete Binary Heap): Todos os níveis, exceto talvez o último, estão completamente preenchidos, e os nós no último nível estão o mais à esquerda possível. Essa propriedade é importante porque permite armazenar eficientemente o montículo em um array.
// Exemplo de estrutura para um nó do montículo (para demonstrar o conceito) public class HeapNode<T> { public T Value { get; set; } // As referências aos nós filhos nem sempre são explícitas na representação em array public HeapNode<T> Left { get; set; } public HeapNode<T> Right { get; set; } }
Embora existam outros tipos de montículos, como o montículo de Fibonacci (para algoritmos avançados) ou o montículo binomial, na maioria dos casos, "montículo" refere-se especificamente a um montículo binário completo de mínimo ou máximo devido ao seu amplo uso em algoritmos de ordenação (por exemplo, Heapsort) e filas de prioridade.