O ile pamiętam trzeba to samemu wymyślić. Zdaje się, że 2 lata temu nie znałem tworu o nazwie kopiec i korzystałem z info na stronie: http://eduinf.waw.pl/inf/alg/001_search/0113.php + przykładu z http://www.coderscity.pl/ftopic30575.html i jakoś to ogarnąłem. Niestety, swojego rozumowania już nie odtworzę… Nie wiem, na ile to pomoże, ale:
- heapify wołam rekurencyjnie w następujący sposób: wczytuję dane do tablicy, robię heapify(x) dla x = liczba węzłów / 2 i tak aż dojdę do korzenia (czyli dla 10 węzłów robię heapify(5), heapify(4), …, heapify(korzeń) w pętli while). Analogicznie wołam heapify po usunięciu korzenia
- nie używam wskaźników, mam globalną zmienną na ilość węzłów i funkcje pop() oraz heapify(). Kopiec to u mnie int heap[size];
- heapify(int node) opieram na warunkach typu if(left <= nodes && heap[left] < heap[min]) i analogicznie dla right. Jeśli syn jest mniejszy od danego węzła - swap i heapify(syn)
Celowo piszę w miarę niejasno, aby nie dać gotowca, ale jak będzie Ci potrzebny to priv 
Poniżej kopia przykładu z coderscity, ale z pominięciem kolorów.
Wejście:
3
-14
-3
15
13
-5
6
-8
-11
1
Po wpisaniu do tablicy...
,---------------(3)--------------.
,----(-14)----. ,-----(-3)------.
,-(15)-. ,-(13) (-5) (6)
(-8) (-11) (1)
"Ukopcowanie":
,---------------(3)--------------.
,----(-14)----. ,-----(-3)------.
,-(15)-. ,-(13) (-5) (6)
(-8) (-11) (1)
,---------------(3)--------------.
,----(-14)----. ,-----(-3)------.
,-(15)-. ,-(1) (-5) (6)
(-8) (-11) (13)
,---------------(3)--------------.
,----(-14)----. ,-----(-3)------.
,-(-11)-. ,-(1) (-5) (6)
(-8) (15) (13)
,---------------(3)--------------.
,----(-14)----. ,-----(-5)-----.
,-(-11)-. ,-(1) (-3) (6)
(-8) (15) (13)
,---------------(3)--------------.
,----(-14)----. ,-----(-5)-----.
,-(-11)-. ,-(1) (-3) (6)
(-8) (15) (13)
,--------------(-14)-------------.
,-----(3)-----. ,-----(-5)-----.
,-(-11)-. ,-(1) (-3) (6)
(-8) (15) (13)
,--------------(-14)-------------.
,----(-11)----. ,-----(-5)-----.
,--(3)--. ,-(1) (-3) (6)
(-8) (15) (13)
,--------------(-14)-------------.
,----(-11)----. ,-----(-5)-----.
,-(-8)--. ,-(1) (-3) (6)
(3) (15) (13)