heap

1. Parte da memória reservada para que um programa faça o armazenamento temporário de suas estruturas de dados, cujo tamanho ou existência não possa ser determinado até o momento em que ele é executado. Para criar e usar esses elementos, algumas linguagens de programação, como C e Pascal, contêm funções e procedures para solicitar a memória livre do heap, acessá-la e liberá-la quando não é mais necessária. Ao contrário da memória de pilha, os blocos de memória heap não são liberados na ordem inversa àquela em que foram alocados. Por isso, os blocos livres podem estar misturados aos blocos que estão em uso. Conforme o programa é executado, os blocos podem precisar ser movidos para que pequenos blocos livres possam ser unidos formando blocos maiores para atender às necessidades do programa. Ver também garbage collection (coleta de lixo). Comparar com stack (pilha). 2. Árvore binária completa em que o valor de cada nó não é excedido pelo valor de nenhum de seus filhos. Ver também binary tree (árvore binária).