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`

`*/`

`#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 array\n";

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 Heap\n";

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

**Sanfoundry Global Education & Learning Series – 1000 C++ Programs.**

If you wish to look at all C++ Programming examples, go to C++ Programs.