Bird
0
0
DSA Cprogramming~20 mins

Double Ended Queue Deque in DSA C - Practice Problems & Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Deque Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of Deque Operations Sequence
What is the printed state of the deque after performing these operations?

Start with an empty deque.
Operations:
1. Add 10 to front
2. Add 20 to rear
3. Add 30 to front
4. Remove from rear
5. Add 40 to rear
DSA C
Deque deque = createDeque();
addFront(&deque, 10);
addRear(&deque, 20);
addFront(&deque, 30);
removeRear(&deque);
addRear(&deque, 40);
printDeque(&deque);
A10 -> 20 -> 40 -> null
B10 -> 30 -> 40 -> null
C30 -> 20 -> 40 -> null
D30 -> 10 -> 40 -> null
Attempts:
2 left
💡 Hint
Remember that addFront adds to the front and addRear adds to the end. Removing from rear removes the last element.
🧠 Conceptual
intermediate
1:30remaining
Deque Behavior on Mixed Operations
If you perform these operations on an empty deque:
addRear(5), addRear(10), addFront(3), removeFront(), removeRear()
What is the final state of the deque?
A5 -> null
B3 -> 5 -> 10 -> null
C10 -> null
D3 -> null
Attempts:
2 left
💡 Hint
Track each operation carefully and update the deque after each step.
🔧 Debug
advanced
2:00remaining
Identify the Error in Deque Implementation
Given this snippet of C code for removing from the rear of a deque, what error will occur?

```c void removeRear(Deque* dq) { if (dq->rear == NULL) return; Node* temp = dq->rear; dq->rear = dq->rear->prev; if (dq->rear != NULL) dq->rear->next = NULL; free(temp); } ```
DSA C
void removeRear(Deque* dq) {
  if (dq->rear == NULL) return;
  Node* temp = dq->rear;
  dq->rear = dq->rear->prev;
  if (dq->rear != NULL) dq->rear->next = NULL;
  free(temp);
}
AMemory leak due to not freeing temp
BDereferencing NULL pointer if deque has only one element
CNo error; code works correctly
DDouble free error on temp
Attempts:
2 left
💡 Hint
Check what happens when deque has one element and how pointers update.
Predict Output
advanced
2:30remaining
Deque State After Complex Operations
What is the deque state after these operations?

Start empty.
addRear(1), addRear(2), addFront(3), removeFront(), addRear(4), removeRear(), addFront(5)
DSA C
Deque dq = createDeque();
addRear(&dq, 1);
addRear(&dq, 2);
addFront(&dq, 3);
removeFront(&dq);
addRear(&dq, 4);
removeRear(&dq);
addFront(&dq, 5);
printDeque(&dq);
A5 -> 1 -> null
B5 -> 1 -> 2 -> null
C1 -> 2 -> 4 -> null
D3 -> 1 -> 4 -> null
Attempts:
2 left
💡 Hint
Track each operation carefully and update the deque after each step.
🧠 Conceptual
expert
1:30remaining
Maximum Number of Elements in Circular Deque
A circular deque is implemented using an array of size 6. If the deque is full, how many elements can it hold at most?
A5
B6
C4
D7
Attempts:
2 left
💡 Hint
In circular deque implementations, one slot is usually kept empty to distinguish full and empty states.