From 584399abc2d9f4bfc320273500ca2682091791c7 Mon Sep 17 00:00:00 2001 From: Pratham Khandelwal Date: Fri, 2 Oct 2020 12:17:51 +0530 Subject: [PATCH] Create Linear Queue --- Linear Queue | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 Linear Queue diff --git a/Linear Queue b/Linear Queue new file mode 100644 index 0000000..53e7e88 --- /dev/null +++ b/Linear Queue @@ -0,0 +1,96 @@ +#include +#include +#define MAX 10 // Changing this value will change length of array +int queue[MAX]; +int front = -1, rear = -1; +void insert(void); +int delete_element(void); +int peek(void); +void display(void); + +int main() +{ + int option, val; + do + { + printf("\n\n ***** MAIN MENU *****"); + printf("\n 1. Insert an element"); + printf("\n 2. Delete an element"); + printf("\n 3. Peek"); + printf("\n 4. Display the queue"); + printf("\n 5. EXIT"); + printf("\n Enter your option : "); + scanf("%d", &option); + switch(option) + { + case 1: insert(); + break; + case 2: val = delete_element(); + if (val != -1) + printf("\n The number deleted is : %d", val); + break; + case 3: val = peek(); + if (val != -1) + printf("\n The first value in queue is : %d", val); + break; + case 4: display(); + break; + } + }while(option != 5); + getch(); + return 0; +} +void insert() +{ + int num; + printf("\n Enter the number to be inserted in the queue : "); + scanf("%d", &num); + if(rear == MAX-1) + printf("\n OVERFLOW"); + else if(front == -1 && rear == -1) + front = rear = 0; + else + rear++; + queue[rear] = num; +} +int delete_element() +{ + int val; + if(front == -1 || front>rear) + { + printf("\n UNDERFLOW"); + return -1; + } + else + { + val = queue[front]; + front++; + if(front > rear) + front = rear = -1; + return val; + } +} +int peek() +{ + if(front==-1 || front>rear) + { + printf("\n QUEUE IS EMPTY"); + return -1; + } + else + { + return queue[front]; + } +} +void display() +{ + int i; + printf("\n"); + if(front == -1 || front > rear) + printf("\n QUEUE IS EMPTY"); + else + { + for(i = front;i <= rear;i++) + printf("\t %d", queue[i]); + } +}