#include#define HEAPSIZE 100 int heap[100]; //heap[1] ÀÌ ·çÆ® ³ëµå int n; //µ¥ÀÌÅÍ ÃÑ °³¼ö void insert_heap(int item) { // n °³ÀÇ ¿ø¼Ò¸¦ °®´Â ÃÖ´ë È÷ÇÁ¿¡ item À» »ðÀÔÇÑ´Ù int i; if (HEAPSIZE==n){ printf("The heap is full \n"); exit(1); } i=++n; while( (i!=1) && (item > heap[i/2]) ){ heap[i]=heap[i/2]; i/=2; } heap[i]=item; } int delete_heap() { int parent,child; int item,temp; if ( n==0) { printf("heap is empty\n"); exit(1); } item=heap[1]; //heap Àç ±¸¼º temp=heap[n--]; parent=1; child=2; while ( child <= n){ // ¿À¸¥ÂÊ ¾ÆµéÀÌ Á¸ÀçÇÏ°í , ¿À¸¥ÂÊ ¾ÆµéÀÌ ¿ÞÂÊ ¾Æµéº¸´Ù Å©¸é ¿À¸¥ÂÊ ¾Æµé·Î º¯°æ if (child < n && heap[child] < heap[child+1]) child++; // ¸¶Áö¸· µ¥ÀÌÅÍ¿Í ºñ±³ ÈÄ Å©°Å³ª °°À¸¸é Å»Ãâ if (temp >= heap[child]) break; // ¾Æ´Ï¸é ÀÚ±âÀ§Ä¡·Î ºÎ¸ð¸¦ ³»¸®°í heap[parent]=heap[child]; parent=child; child*=2; } heap[parent]=temp; return item; } int main() { insert_heap(3); insert_heap(5); insert_heap(4); printf("%d\n",delete_heap()); //3,5,4 Áß¿¡ Å« µ¥ÀÌÅÍ 5 °¡ Ãâ·Â return 0; }