push(A), push(B), push(C)
pop() → C
pop() → BUses: call stack, undo/redo, expression parsing, depth-first tree traversal (DFS).
enqueue(A), enqueue(B), enqueue(C)
dequeue() → A
dequeue() → BUses: task queues, breadth-first search (BFS), producer-consumer buffers.
Double-ended queue — add and remove from both ends. Combines capabilities of both stack and queue.