(DS-8)

8A. Write a program to insert the element into maximum heap.

#include<stdio.h>

#include<conio.h>

#define SIZE 30

int a[SIZE], n;

void maxheapify(int a[],int i,int n1);

void buildheap(int a[],int n1);

void swap(int i,int j);

int main()

{

int i,j;

printf("\nenter the number of elements: ");

scanf("%d",&n);

for(i=0;i<n;i++)

{

printf("enter a value:");

scanf("%d",&a[i]);

}

buildheap(a,n);

for(j=0;j<n;j++)

{

printf("\t%d",a[j]);

}

printf("\n");

}

void buildheap(int a[],int n1)

{

int i,j;

for(i=(n1/2)-1;i>=0;i--)

{

maxheapify(a,i,n1);

}


}

void maxheapify(int a[],int i,int n1)

{

int max,l,r;

max=i;

l=(2*i)+1;

r=(2*i)+2;

if(l<n1&&r<n1){

if(a[l]>a[max])

{

max=l;

}

if(a[r]>a[max])

{

max=r;

}

}

else if(l<n1&&r>=n1)

{

if(a[l]>a[max])

{

max=l;

}

}

else if(l>=n1&&r<n1)

{

if(a[r]>a[max])

{

max=r;

}

}

if(i!=max)

{

swap(i,max);

maxheapify(a,max,n1);

}

}

void swap(int i,int j)

{

int temp=a[i];

a[i]=a[j];

a[j]=temp;

}

8B. Write a program to insert the element into minimum heap.

#include<stdio.h>

#include<conio.h>

#define SIZE 30

int a[SIZE], n;

void minheapify(int a[],int i,int n1);

void buildheap(int a[],int n1);

void swap(int i,int j);

int main()

{

int i,j;

printf("\nenter the number of elements: ");

scanf("%d",&n);

for(i=0;i<n;i++)

{

printf("enter a value:");

scanf("%d",&a[i]);

}

buildheap(a,n);

for(j=0;j<n;j++)

{

printf("\t%d",a[j]);

}

printf("\n");

}

void buildheap(int a[],int n1)

{

int i,j;

for(i=(n1/2)-1;i>=0;i--)

{

minheapify(a,i,n1);

}


}

void minheapify(int a[],int i,int n1)

{

int min,l,r;

min=i;

l=(2*i)+1;

r=(2*i)+2;

if(l<n1&&r<n1){

if(a[l]<a[min])

{

min=l;

}

if(a[r]<a[min])

{

min=r;

}

}

else if(l<n1&&r>=n1)

{

if(a[l]<a[min])

{

min=l;

}

}

else if(l>=n1&&r<n1)

{

if(a[r]<a[min])

{

min=r;

}

}

if(i!=min)

{

swap(i,min);

minheapify(a,min,n1);

}

}

void swap(int i,int j)

{

int temp=a[i];

a[i]=a[j];

a[j]=temp;

}


Comments

Popular posts from this blog

python(BI)

Prac_8(AMP)

LSA10