C Program of dequeue using a circular array
Data Structure / Queue Data Structure
760Program:
/* C Program of dequeue using a circular array*/ #include #include #define MAX 7 int deque_arr[MAX]; int front=-1; int rear=-1; void insert_frontEnd(int item); void insert_rearEnd(int item); int delete_frontEnd(); int delete_rearEnd(); void display(); int isEmpty(); int isFull(); main() { int choice,item; while(1) { printf("1.Insert at the front end\n"); printf("2.Insert at the rear end\n"); printf("3.Delete from front end\n"); printf("4.Delete from rear end\n"); printf("5.Display\n"); printf("6.Quit\n"); printf("Enter your choice : "); scanf("%d",&choice); switch(choice) { case 1: printf("Input the element for adding in queue : "); scanf("%d",&item); insert_frontEnd(item); break; case 2: printf("Input the element for adding in queue : "); scanf("%d",&item); insert_rearEnd(item); break; case 3: printf("Element deleted from front end is : %d\n",delete_frontEnd()); break; case 4: printf("Element deleted from rear end is : %d\n",delete_rearEnd()); break; case 5: display(); break; case 6: exit(1); default: printf("Wrong choice\n"); }/*End of switch*/ printf("front = %d, rear =%d\n", front , rear); display(); }/*End of while*/ }/*End of main()*/ void insert_frontEnd(int item) { if( isFull() ) { printf("Queue Overflow\n"); return; } if( front==-1 )/*If queue is initially empty*/ { front=0; rear=0; } else if(front==0) front=MAX-1; else front=front-1; deque_arr[front]=item ; }/*End of insert_frontEnd()*/ void insert_rearEnd(int item) { if( isFull() ) { printf("Queue Overflow\n"); return; } if(front==-1) /*if queue is initially empty*/ { front=0; rear=0; } else if(rear==MAX-1) /*rear is at last position of queue */ rear=0; else rear=rear+1; deque_arr[rear]=item ; }/*End of insert_rearEnd()*/ int delete_frontEnd() { int item; if( isEmpty() ) { printf("Queue Underflow\n"); exit(1); } item=deque_arr[front]; if(front==rear) /*Queue has only one element */ { front=-1; rear=-1; } else if(front==MAX-1) front=0; else front=front+1; return item; }/*End of delete_frontEnd()*/ int delete_rearEnd() { int item; if( isEmpty() ) { printf("Queue Underflow\n"); exit(1); } item=deque_arr[rear]; if(front==rear) /*queue has only one element*/ { front=-1; rear=-1; } else if(rear==0) rear=MAX-1; else rear=rear-1; return item; }/*End of delete_rearEnd() */ int isFull() { if ( (front==0 && rear==MAX-1) || (front==rear+1) ) return 1; else return 0; }/*End of isFull()*/ int isEmpty() { if( front == -1) return 1; else return 0; }/*End of isEmpty()*/ void display() { int i; if( isEmpty() ) { printf("Queue is empty\n"); return; } printf("Queue elements :\n"); i=front; if( front<=rear ) { while(i<=rear) printf("%d ",deque_arr[i++]); } else { while(i<=MAX-1) printf("%d ",deque_arr[i++]); i=0; while(i<=rear) printf("%d ",deque_arr[i++]); } printf("\n"); }/*End of display() */
Output:
1.Insert at the front end 2.Insert at the rear end 3.Delete from front end 4.Delete from rear end 5.Display 6.Quit Enter your choice : 1 Input the element for adding in queue : 12 front = 0, rear =0 Queue elements : 12 1.Insert at the front end 2.Insert at the rear end 3.Delete from front end 4.Delete from rear end 5.Display 6.Quit Enter your choice : 2 Input the element for adding in queue : 14 front = 0, rear =1 Queue elements : 12 14 1.Insert at the front end 2.Insert at the rear end 3.Delete from front end 4.Delete from rear end 5.Display 6.Quit Enter your choice : 3 Element deleted from front end is : 12 front = 1, rear =1 Queue elements : 14 1.Insert at the front end 2.Insert at the rear end 3.Delete from front end 4.Delete from rear end 5.Display 6.Quit Enter your choice : 45 Wrong choice front = 1, rear =1 Queue elements : 14 1.Insert at the front end 2.Insert at the rear end 3.Delete from front end 4.Delete from rear end 5.Displa
Explanation:
nope
This Particular section is dedicated to Programs only. If you want learn more about Data Structure. Then you can visit below links to get more depth on this subject.
# C Tutorials
# JAVA Tutorials
# HTML Tutorials
# Computer Fundamental
# Data Structure
# DBMS Tutorials
SQL
# C# Language
# R Language
# PHP
# Python
# Vue JS