Sort Using Stacks

  1. #include < stdio.h >  
  2.     int stack1[100], stack2[100];  
  3. int top1 = 0, top2 = 0;  
  4. void insert();  
  5. void show();  
  6. main() {  
  7.     int ch;  
  8.   
  9.     do {  
  10.         printf("\n1 : Insert ");  
  11.         printf("\n2 : Check ");  
  12.         printf("\n3 : Exit ");  
  13.   
  14.         printf("\nPlease enter your choice ?\n");  
  15.         scanf("%d", & ch);  
  16.   
  17.         switch (ch) {  
  18.             case 1:  
  19.                 insert();  
  20.                 break;  
  21.             case 2:  
  22.                 show();  
  23.                 break;  
  24.             case 3:  
  25.                 printf("The program ended");  
  26.                 break;  
  27.             default:  
  28.                 printf("\nInvalid choice is entered..........!!\n");  
  29.                 break;  
  30.         }  
  31.     }  
  32.     while (ch != 3);  
  33. }  
  34.   
  35. void insert()  
  36. {  
  37.     int i;  
  38.     top1 = top1 + 1;  
  39.     printf("Enter the data to insert ?\n");  
  40.     scanf("%d", & stack1[top1]);  
  41.     printf("The data inserted Successfully..\n");  
  42.     if (top1 >= 2)  
  43.     {  
  44.         while (top1 > 1) {  
  45.             if (stack1[top1 - 1] > stack1[top1]) {  
  46.                 top2 = top2 + 1;  
  47.                 stack2[top2] = stack1[top1 - 1];  
  48.                 stack1[top1 - 1] = stack1[top1];  
  49.                 top1 = top1 - 1;  
  50.             } else break;  
  51.         }  
  52.         while (top2 >= 1)  
  53.         {  
  54.             top1 = top1 + 1;  
  55.             stack1[top1] = stack2[top2];  
  56.             top2 = top2 - 1;  
  57.         }  
  58.     }  
  59.   
  60. }  
  61.   
  62. void show()   
  63. {  
  64.     int i;  
  65.     printf("\nThe stack elements are.....\n");  
  66.     for (i = top1; i >= 1; --i)   
  67.     {  
  68.         printf("[ %d ]\n", stack1[i]);  
  69.     }  
  70. }