steverobinson

Steve Robinson

Aug 26th, 2010
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.72 KB | None | 0 0
  1. //Program to Implement struct binaryheap Queue using Min Heap
  2. #include <stdio.h>
  3. #include <conio.h>
  4.  
  5. struct binaryheap
  6. {
  7.     int maxsize;
  8.     int size;
  9.     int *elements;
  10. }h;
  11. void display()
  12. {
  13.     int i;
  14. printf("\nThe Elements are: \n");
  15.       for(i=1;i<=h.size;i++)
  16.     {
  17.         printf("\n%d",h.elements[i]);
  18.     }
  19. }
  20. void insert (int x)
  21. {
  22.     int i,temp;
  23.     if(h.size==0)
  24.         {
  25.             h.size++;
  26.             h.elements[1]=x;
  27.         }
  28.     else
  29.     {
  30.  
  31.     h.size++;
  32.     h.elements[h.size]=x;
  33.     for(i=h.size;h.elements[i]<h.elements[i/2]&&i/2!=0;i=i/2)
  34.     {
  35.             temp=h.elements[i];
  36.             h.elements[i]=h.elements[i/2];
  37.             h.elements[i/2]=temp;
  38.     }
  39.     }
  40. }
  41. int  main()
  42. {
  43.     int temp,ch,i;
  44.     h.size=0;
  45.     printf("\nEnter Maximum Number of Elements in the Queue: ");
  46.     scanf("%d",&h.maxsize);
  47.     h.elements=(int *)malloc((h.maxsize+1)*sizeof(int));
  48.     menu:
  49.     printf("\nMenu:\n1. Insert Elements\n2. Display Heap\n3. Exit\nEnter Choice.....");
  50.     scanf("%d",&ch);
  51.  
  52.     switch(ch)
  53.     {
  54.         case 1:
  55.        do{
  56.             if(h.size<h.maxsize)
  57.             {
  58.             printf("\nEnter the element: ");
  59.             scanf("%d",&temp);
  60.             insert(temp);
  61.             }
  62.             else
  63.             {
  64.                 printf("\nQueue Full!\n");
  65.                 goto menu;
  66.             }
  67.             printf("\nInsert More ? Yes (1) No (0)");
  68.             scanf("%d",&ch);
  69.       }while(ch);
  70.       break;
  71.       case 2:
  72.         display();
  73.         break;
  74.  
  75.       case 3:
  76.         printf("\nThank You!");
  77.         getch();
  78.        return 0;
  79.  
  80.         default:
  81.         printf("\nInvalid choice!\n");
  82.         goto menu;
  83.     }
  84.     goto menu;
  85.  
  86. }
Add Comment
Please, Sign In to add comment