heap_sort(int arr[], int size) { int max; int i, n = size; buildHeap(arr, size); printf("Heap size is %d\n", size); printf("Heap is : "); display(arr,size); display_heap(arr,size); printf("\n"); while(size>1) { max = del_root(arr,&size); arr[size+1]=max; printf("Root = %d is deleted and placed at arr[%d]\n", max, size+1); printf("Heap size is %d\n", size); printf("Heap is : "); for(i=1;i<=size;i++) printf("%d ",arr[i]); printf("\n"); display_heap(arr, size); printf("\n"); printf("Array is : "); for(i=1;i<=size;i++) printf("%d ",arr[i]); printf("_____"); for(i=size+1;i<=n;i++) printf("%d ",arr[i]); printf("\n\n"); STOP; } }/*End of heap_sort*/
void main(){ int i; int a[]={2,8}; int n=sizeof(a)/sizeof(a[0]); h=create_heap(); fill_heap(a,n); display_heap(); printf("Top element is %d\n",top()); insert(77); display_heap(); printf("Top element is %d",top()); pop(); display_heap(); printf("Top element is %d",top()); }
main() { int i,ch,H[20],ps,ky; printf("Input array length: "); scanf("%d",&len); printf("\nInput array -\n"); for(i=0;i<len;i++) scanf("%d",&H[i]); heapsize=len; //build_maxheap(H); build_minheap(H); printf("\nDisplaying heap -\n"); display_heap(H); //printf("\n---------PRIORITY QUEUE-----------\n\n1.) Print maximum value in queue\n2.) Print and extract maximum value in queue\n3.) Increase key for an element in the queue\n4.) Insert key into the queue\n"); printf("\n---------PRIORITY QUEUE-----------\n\n1.) Print minimum value in queue\n2.) Print and extract minimum value in queue\n3.) Decrease key for an element in the queue\n4.) Insert key into the queue\n"); printf("\nEnter choice (1-4): "); scanf("%d",&ch); printf("\n"); switch(ch) { case 1: //printf("%d\n",heap_maximum(H)); printf("%d\n",heap_minimum(H)); printf("Displaying PriorityQ: "); display_heap(H); break; case 2: //printf("%d\n",heap_max_extract(H)); printf("%d\n",heap_min_extract(H)); printf("Displaying PriorityQ: "); display_heap(H); break; case 3: //printf("Enter position of the queue element whose key you want to increase (1-%d): ",len); printf("Enter position of the queue element whose key you want to decrease (1-%d): ",len); scanf("%d",&ps); printf("Enter new key: "); scanf("%d",&ky); //heap_increase_key(H,ps,ky); heap_decrease_key(H,ps,ky); printf("Displaying PriorityQ: "); display_heap(H); break; case 4: printf("Enter the new key you want to insert: "); scanf("%d",&ky); //maxheap_insert(H,ky); minheap_insert(H,ky); printf("Displaying PriorityQ: "); display_heap(H); break; default: break; } printf("\n"); }