Skip to content

Latest commit

 

History

History
46 lines (38 loc) · 1.84 KB

README.md

File metadata and controls

46 lines (38 loc) · 1.84 KB

Heap Em C

Uma implementação de heap (com alocação dinâmica) na linguagem C.

Structs

  • struct heap_struct
  • Referida, por meio de typedef, como heap, armazena a estrutura do heap. Possui como valores:
    • int size: tamanho total do heap (do vetor de conteúdo do heap)
    • int taken: tamanho já ocupado no heap. M.q. número de elementos.
    • int type: se é um maxheap (1) ou minheap (0).
    • int *content: vetor que armazena o conteúdo do heap.
    Vale observar que size, taken e content são frequentemente atualizados pelas funções do arquivo header.

Funções

  • hCreate (int type, int initialSize)
  • Retorna um novo heap de tamanho inicial initialSize. Um heap pode ser criado com heap nome = hCreate(tipoDoHeap, tamanho);
  • hInsert (heap *aHeap, int value)
  • Insere um valor no heap. Caso necessário, também redimensiona o tamanho do heap.content dinamicamente, com realloc, dobrando seu espaço.
  • hPop (heap *aHeap)
  • Remove a raiz do heap e retorna esse elemento.
  • printHeap (heap aHeap)
  • Imprime o heap em camadas, como uma árvore.
  • printHeapArray (heap aHeap)
  • Imprime o heap normalmente (como um vetor).
  • heapHeight (heap aHeap)
  • Retorna a altura do heap, como em uma árvore.
  • hExists (heap aHeap, int value)
  • Retorna 1 caso um elemento exista no heap. Caso contrário, retorna 0.