From 0e502c9a432319e606c935c465c316d7073cfafc Mon Sep 17 00:00:00 2001 From: DinkyRajpoot56 Date: Wed, 6 Nov 2024 08:40:58 +0530 Subject: [PATCH 1/2] Added Double Ended Queue In C --- Queue/DoubleEndedQueue/DoubleEndedQueue.c | 164 ++++++++++++++++++++ Queue/DoubleEndedQueue/DoubleEndedQueue.exe | Bin 0 -> 43229 bytes Queue/DoubleEndedQueue/README.md | 65 ++++++++ 3 files changed, 229 insertions(+) create mode 100644 Queue/DoubleEndedQueue/DoubleEndedQueue.c create mode 100644 Queue/DoubleEndedQueue/DoubleEndedQueue.exe create mode 100644 Queue/DoubleEndedQueue/README.md diff --git a/Queue/DoubleEndedQueue/DoubleEndedQueue.c b/Queue/DoubleEndedQueue/DoubleEndedQueue.c new file mode 100644 index 00000000..27f1e2a7 --- /dev/null +++ b/Queue/DoubleEndedQueue/DoubleEndedQueue.c @@ -0,0 +1,164 @@ +#include +#include + +#define MAX 5 + +int deque[MAX]; +int front = -1; +int rear = -1; + +int isFull() +{ + return ((front == 0 && rear == MAX - 1) || (front == rear + 1)); +} + +int isEmpty() +{ + return (front == -1); +} + +void insertFront(int key) +{ + if (isFull()) + { + printf("Overflow: Unable to insert element at the front. Deque is full.\n"); + return; + } + + if (front == -1) + { + front = 0; + rear = 0; + } + else if (front == 0) + { + front = MAX - 1; + } + else + { + front = front - 1; + } + + deque[front] = key; + printf("Inserted %d at the front.\n", key); +} + +void insertRear(int key) +{ + if (isFull()) + { + printf("Overflow: Unable to insert element at the rear. Deque is full.\n"); + return; + } + + if (rear == -1) + { + front = 0; + rear = 0; + } + else if (rear == MAX - 1) + { + rear = 0; + } + else + { + rear = rear + 1; + } + + deque[rear] = key; + printf("Inserted %d at the rear.\n", key); +} + +void deleteFront() +{ + if (isEmpty()) + { + printf("Underflow: Unable to delete element from the front. Deque is empty.\n"); + return; + } + + int removed = deque[front]; + + if (front == rear) + { + front = -1; + rear = -1; + } + else if (front == MAX - 1) + { + front = 0; + } + else + { + front = front + 1; + } + + printf("Deleted %d from the front.\n", removed); +} + +void deleteRear() +{ + if (isEmpty()) + { + printf("Underflow: Unable to delete element from the rear. Deque is empty.\n"); + return; + } + + int removed = deque[rear]; + + if (front == rear) + { + front = -1; + rear = -1; + } + else if (rear == 0) + { + rear = MAX - 1; + } + else + { + rear = rear - 1; + } + + printf("Deleted %d from the rear.\n", removed); +} + +void displayDeque() +{ + if (isEmpty()) + { + printf("Deque is empty.\n"); + return; + } + + printf("Deque elements are: "); + int i = front; + while (1) + { + printf("%d ", deque[i]); + if (i == rear) + break; + i = (i + 1) % MAX; + } + printf("\n"); +} + +int main() +{ + insertRear(5); + displayDeque(); + + insertFront(15); + displayDeque(); + + insertRear(25); + displayDeque(); + + deleteFront(); + displayDeque(); + + deleteRear(); + displayDeque(); + + return 0; +} diff --git a/Queue/DoubleEndedQueue/DoubleEndedQueue.exe b/Queue/DoubleEndedQueue/DoubleEndedQueue.exe new file mode 100644 index 0000000000000000000000000000000000000000..55b03d4486fbfcecbd843a2ef3d3e2ebf2c9c72a GIT binary patch literal 43229 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 EA2EueB>(^b literal 0 HcmV?d00001 diff --git a/Queue/DoubleEndedQueue/README.md b/Queue/DoubleEndedQueue/README.md new file mode 100644 index 00000000..b335abf8 --- /dev/null +++ b/Queue/DoubleEndedQueue/README.md @@ -0,0 +1,65 @@ +# Operations on a Double Ended Queue + +Below is the circular array implementation of Double Ended Queue. In a circular array, if the array is full, we start from the beginning. + +But in a linear array implementation, if the array is full, no more elements can be inserted. In each of the operations below, if the array is full, "overflow message" is thrown. + +Before performing the following operations, these steps are followed. + +Take an array (Double Ended Queue) of size n. +Set two pointers front = -1 and rear = 0. + +# Types of Double Ended Queue + +Input Restricted Double Ended Queue +In this Double Ended Queue, input is restricted at a single end but allows deletion at both the ends. +Output Restricted Double Ended Queue +In this Double Ended Queue, output is restricted at a single end but allows insertion at both the ends. + +# Insertion at Front in Double Ended Queue in C + +To insert an element at the front end of the Double Ended Queue first, check if the Double Ended Queue is full or not if Double Ended Queue is not full then follow the below approach: + +Insert At Front in Double Ended Queue-(1) +Insert at front in Double Ended Queue +Approach: + +First, check the position of the front in our array. +If front < 1 , reinitialize front as the last index of the array i.e. front = N-1. +Then, add new element to array[front]. + +# Insertion at Rear in Double Ended Queue in C + +Insert At Rear in Double Ended Queue-(1) +Insert at Rear in Double Ended Queue +To insert an element at the rear end of the Double Ended Queue, follow the below approach: + +Approach: + +First, check if the Double Ended Queue is full or not. +If the Double Ended Queue is full , reinitialize rear with 0 (rear = 0) else increase rear by 1. +Then, add the element to array[rear]. + +# Deletion at Front in Double Ended Queue in C + +To delete an element at the front end of Double Ended Queue the first, follow the below approach: + +Approach: + +First, check if Double Ended Queue is empty or not. +If the Double Ended Queue is empty (front == -1), then we cannot perform deletion operation. In this condition, we will simply print underflow. +If contains only 1 element (front = rear) , then only one deletion operation can be performed. set front = -1 and rear = -1. +Else if the front is at the last index ( front == n-1 ) , set front at starting index of Double Ended Queue (front = 0). +If none of the above case exists, just increment front by 1 (front = front + 1). + +# Deletion at Rear in Double Ended Queue in C + +DeletionAtRear +Delete at Rear in Double Ended Queue +To delete an element at the rear end of the Double Ended Queue, follow the below approach: + +First, check if the Double Ended Queue is empty or not. +If the Double Ended Queue is empty (front = -1), then deletion operation cannot be performed and we will print underflow. +If the Double Ended Queue has only 1 element( front==rear), we will set front = -1 and rear =-1. +If the rear is at the starting index of Double Ended Queue (rear == 0) , then set rear to last index (rear = n-1). +If none of the above case exists, just decrement rear by 1 (rear = rear-1). From e21aa7196c5327a11ced24fb0e38ef930fd813a7 Mon Sep 17 00:00:00 2001 From: DinkyRajpoot56 Date: Thu, 7 Nov 2024 08:37:23 +0530 Subject: [PATCH 2/2] Deleted DoubleEndedQueue.exe file --- Queue/DoubleEndedQueue/DoubleEndedQueue.exe | Bin 43229 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Queue/DoubleEndedQueue/DoubleEndedQueue.exe diff --git a/Queue/DoubleEndedQueue/DoubleEndedQueue.exe b/Queue/DoubleEndedQueue/DoubleEndedQueue.exe deleted file mode 100644 index 55b03d4486fbfcecbd843a2ef3d3e2ebf2c9c72a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43229 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 EA2EueB>(^b