/* DOUBLE ENDED QUEUE */ #include<stdio.h> #include<conio.h> #define MAX 10 int deque[MAX]; int left=-1, right=-1; void insert_right(void); void insert_left(void); void delete_right(void); void delete_left(void); void display(void); int main() { int choice; clrscr(); do { printf("\n1.Insert at right "); printf("\n2.Insert at left "); printf("\n3.Delete from right "); printf("\n4.Delete from left "); printf("\n5.Display "); printf("\n6.Exit"); printf("\n\nEnter your choice "); scanf("%d",&choice); switch(choice) { case 1: insert_right(); break; case 2: insert_left(); break; case 3: delete_right(); break; case 4: delete_left(); break; case 5: display(); break; } }while(choice!=6); getch(); return 0; } //-------INSERT AT RIGHT------- void insert_right() { int val; printf("\nEnter the value to be added "); scanf("%d",&val); if( (left==0 && right==MAX-1) || (left==right+1) ) { printf("\nOVERFLOW"); } if(left==-1) //if queue is initially empty { left=0; right=0; } else { if(right==MAX-1) right=0; else right=right+1; } deque[right]=val; } //-------INSERT AT LEFT------- void insert_left() { int val; printf("\nEnter the value to be added "); scanf("%d",&val); if( (left==0 && right==MAX-1) || (left==right+1) ) { printf("\nOVERFLOW"); } if(left==-1) //if queue is initially empty { left=0; right=0; } else { if(left==0) left=MAX-1; else left=left-1; } deque[left]=val; } //-------DELETE FROM RIGHT------- void delete_right() { if(left==-1) { printf("\nUNDERFLOW"); return; } printf("\nThe deleted element is %d\n", deque[right]); if(left==right) //Queue has only one element { left=-1; right=-1; } else { if(right==0) right=MAX-1; else right=right-1; } } //-------DELETE FROM LEFT------- void delete_left() { if(left==-1) { printf("\nUNDERFLOW"); return; } printf("\nThe deleted element is %d\n", deque[left]); if(left==right) //Queue has only one element { left=-1; right=-1; } else { if(left==MAX-1) left=0; else left=left+1; } } //-------DISPLAY------- void display() { int front=left, rear=right; if(front==-1) { printf("\nQueue is Empty\n"); return; } printf("\nThe elements in the queue are: "); if(front<=rear) { while(front<=rear) { printf("%d\t",deque[front]); front++; } } else { while(front<=MAX-1) { printf("%d\t",deque[front]); front++; } front=0; while(front<=rear) { printf("%d\t",deque[front]); front++; } } printf("\n"); } /* OUTPUT 1.Insert at right 2.Insert at left 3.Delete from right 4.Delete from left 5.Display 6.Exit Enter your choice 1 Enter the value to be added 5 1.Insert at right 2.Insert at left 3.Delete from right 4.Delete from left 5.Display 6.Exit Enter your choice 2 Enter the value to be added 6 1.Insert at right 2.Insert at left 3.Delete from right 4.Delete from left 5.Display 6.Exit Enter your choice 2 Enter the value to be added 7 1.Insert at right 2.Insert at left 3.Delete from right 4.Delete from left 5.Display 6.Exit Enter your choice 5 The elements in the queue are: 7 6 5 1.Insert at right 2.Insert at left 3.Delete from right 4.Delete from left 5.Display 6.Exit Enter your choice 3 The deleted element is 5 1.Insert at right 2.Insert at left 3.Delete from right 4.Delete from left 5.Display 6.Exit Enter your choice 5 The elements in the queue are: 7 6 1.Insert at right 2.Insert at left 3.Delete from right 4.Delete from left 5.Display 6.Exit Enter your choice 4 The deleted element is 7 1.Insert at right 2.Insert at left 3.Delete from right 4.Delete from left 5.Display 6.Exit Enter your choice 5 The elements in the queue are: 6 1.Insert at right 2.Insert at left 3.Delete from right 4.Delete from left 5.Display 6.Exit Enter your choice 3 The deleted element is 6 1.Insert at right 2.Insert at left 3.Delete from right 4.Delete from left 5.Display 6.Exit Enter your choice 5 Queue is Empty 1.Insert at right 2.Insert at left 3.Delete from right 4.Delete from left 5.Display 6.Exit Enter your choice 6 */
Comments
Thank you sir
ReplyDeletethank you very much