This C Program implements a heap & provide insertion & deletion operation.
Here is source code of the C Program to implement a heap & provide insertion & deletion operation. The C program is successfully compiled and run on a Linux system. The program output is also shown below.
/*
* C Program to Implement a Heap & provide Insertion & Deletion Operation
*/
#include <stdio.h>
int array[100], n;
main()
{
int choice, num;
n = 0;/*Represents number of nodes in the heap*/
while(1)
{
printf("1.Insert the element \n");
printf("2.Delete the element \n");
printf("3.Display all elements \n");
printf("4.Quit \n");
printf("Enter your choice : ");
scanf("%d", &choice);
switch(choice)
{
case 1:
printf("Enter the element to be inserted to the list : ");
scanf("%d", &num);
insert(num, n);
n = n + 1;
break;
case 2:
printf("Enter the elements to be deleted from the list: ");
scanf("%d", &num);
delete(num);
break;
case 3:
display();
break;
case 4:
exit(0);
default:
printf("Invalid choice \n");
}/*End of switch */
}/*End of while */
}/*End of main()*/
display()
{
int i;
if (n == 0)
{
printf("Heap is empty \n");
return;
}
for (i = 0; i < n; i++)
printf("%d ", array[i]);
printf("\n");
}/*End of display()*/
insert(int num, int location)
{
int parentnode;
while (location > 0)
{
parentnode =(location - 1)/2;
if (num <= array[parentnode])
{
array[location] = num;
return;
}
array[location] = array[parentnode];
location = parentnode;
}/*End of while*/
array[0] = num; /*assign number to the root node */
}/*End of insert()*/
delete(int num)
{
int left, right, i, temp, parentnode;
for (i = 0; i < num; i++) {
if (num == array[i])
break;
}
if (num != array[i])
{
printf("%d not found in heap list\n", num);
return;
}
array[i] = array[n - 1];
n = n - 1;
parentnode =(i - 1) / 2; /*find parentnode of node i */
if (array[i] > array[parentnode])
{
insert(array[i], i);
return;
}
left = 2 * i + 1; /*left child of i*/
right = 2 * i + 2; /* right child of i*/
while (right < n)
{
if (array[i] >= array[left] && array[i] >= array[right])
return;
if (array[right] <= array[left])
{
temp = array[i];
array[i] = array[left];
array[left] = temp;
i = left;
}
else
{
temp = array[i];
array[i] = array[right];
array[right] = temp;
i = right;
}
left = 2 * i + 1;
right = 2 * i + 2;
}/*End of while*/
if (left == n - 1 && array[i]) {
temp = array[i];
array[i] = array[left];
array[left] = temp;
}
}
$ cc pgm66.c $ a.out 1.Insert the element 2.Delete the element 3.Display all elements 4.Quit Enter your choice : 1 Enter the element to be inserted to the list : 30 1.Insert the element 2.Delete the element 3.Display all elements 4.Quit Enter your choice : 1 Enter the element to be inserted to the list : 50 1.Insert the element 2.Delete the element 3.Display all elements 4.Quit Enter your choice : 1 Enter the element to be inserted to the list : 70 1.Insert the element 2.Delete the element 3.Display all elements 4.Quit Enter your choice : 2 Enter the elements to be deleted from the list: 10 10 not found in heap list 1.Insert the element 2.Delete the element 3.Display all elements 4.Quit Enter your choice : 2 Enter the elements to be deleted from the list: 50 1.Insert the element 2.Delete the element 3.Display all elements 4.Quit Enter your choice : 1 Enter the element to be inserted to the list : 100 1.Insert the element 2.Delete the element 3.Display all elements 4.Quit Enter your choice : 3 100 30 70 1.Insert the element 2.Delete the element 3.Display all elements 4.Quit Enter your choice : 4
Sanfoundry Global Education & Learning Series – 1000 C Programs.
advertisement
advertisement
Here’s the list of Best Books in C Programming, Data-Structures and Algorithms
If you wish to look at other example programs on Trees, go to Trees. If you wish to look at programming examples on all topics, go to C Programming Examples.
Next Steps:
- Get Free Certificate of Merit in Data Structure I
- Participate in Data Structure I Certification Contest
- Become a Top Ranker in Data Structure I
- Take Data Structure I Tests
- Chapterwise Practice Tests: Chapter 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- Chapterwise Mock Tests: Chapter 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Related Posts:
- Apply for Data Structure Internship
- Practice Design & Analysis of Algorithms MCQ
- Buy Computer Science Books
- Practice Programming MCQs
- Apply for Information Technology Internship