Lab Heaps and Bfs
Lab Heaps and Bfs
int size = 0;
*b = *a;
*a = temp;
if (size == 1) {
} else {
// Find the largest among root, left child and right child
int largest = i;
int l = 2 * i + 1;
int r = 2 * i + 2;
largest = l;
largest = r;
if (largest != i) {
swap(&array[i], &array[largest]);
heapify(array, size, largest);
if (size == 0) {
array[0] = newNum;
size += 1;
} else {
array[size] = newNum;
size += 1;
int i;
if (num == array[i])
break;
size -= 1;
printf("\n");
// Driver code
int main() {
int array[10];
insert(array, 3);
insert(array, 4);
insert(array, 9);
insert(array, 5);
insert(array, 2);
printArray(array, size);
deleteRoot(array, 4);
printArray(array, size);
Output:
Implementation of Heap sort..
#include <stdio.h>
//main fucntion
int main() {
int arr[10],j;
int n = sizeof(arr) / sizeof(arr[0]);
printf("Sorted array:\n");
display(arr, n);
}
Implementation of bfs:
#include <stdio.h>
int a[20][20],q[20],visited[20],n,i,j,f=0,r=-1;
void bfs(int v);
main()
{
int v;
printf("enter the number of vertices: ");
scanf("%d",&n);
printf("enter the adjacency matrix: ");
for(i=0;i<n;i++)
{
for(j=0; j<n; j++)
scanf("%d",&a[i][j]);
}
printf("enter the starting vertex:");
scanf("%d" ,&v);
for(i=0;i<n;i++){
q[i]=0;
visited[i]=0;
}
bfs(v);
printf("the rechable nodes are :");
for(i=0;i<n; i++)
{
if (visited[i])
printf("%d\t",i);
}
return 0;
}
void bfs(int v)
{
for(i=0;i<n;i++)
{
}
}
Output:
Implementation of dfs:
#include <stdio.h>
int a[20][20],s[20],visited[20],n,i,j,top=-1;
void dfs(int v)
{
for(i=0;i<n;i++)
{
}
}
int main()
{
int v;
printf("enter the number of vertices: ");
scanf("%d",&n);
printf("enter the adjacency matrix: ");
for(i=0;i<n;i++)
{
for(j=0; j<n; j++)
scanf("%d",&a[i][j]);
}
printf("enter the starting vertex:");
scanf("%d" ,&v);
for(i=0;i<n;i++){
s[i]=0;
visited[i]=0;
}
dfs(v);
printf("the rechable nodes are :");
for(i=0;i<n; i++)
{
if (visited[i])
printf("%d\t",i);
}
return 0;
}
Output: