C++ Program to Implement Max Heap

This C++ program, displays the maximum heap in which each node of a binary tree is greater than or equal to it’s child nodes. Here is the source code of the C++ program which takes the values of array as input and returns the elements as they are structured in the maximum heap model. This C++ program is successfully compiled and run on DevCpp, a C++ compiler. The program output is also shown below.
C++ Program to Implement Max Heap


/*
* C++ Program to Implement Max Heap
*/
#include <iostream>
#include <conio.h>
using namespace std;
void max_heapify(int *a, int i, int n)
{
int j, temp;
temp = a[i];
j = 2 * i;
while (j <= n)
{
if (j < n && a[j+1] > a[j])
j = j + 1;
if (temp > a[j])
break;
else if (temp <= a[j])
{
a[j / 2] = a[j];
j = 2 * j;
}
}
a[j/2] = temp;
return;
}
void build_maxheap(int *a,int n)
{
int i;
for(i = n/2; i >= 1; i--)
{
max_heapify(a,i,n);
}
}
int main()
{
int n, i, x;
cout<<"enter no of elements of arrayn";
cin>>n;
int a[20];
for (i = 1; i <= n; i++)
{
cout<<"enter element"<<(i)<<endl;
cin>>a[i];
}
build_maxheap(a,n);
cout<<"Max Heapn";
for (i = 1; i <= n; i++)
{
cout<<a[i]<<endl;
}
getch();
}


Output
enter no of elements of array
7
enter element1
5
enter element2
9
enter element3
6
enter element4
7
enter element5
1
enter element6
3
enter element7
8
Max Heap
9
7
8
5
1
3
6

Post a Comment