A deque (double-ended queue) supports push/pop at both front and back in $O(1)$ time. It generalizes stack and queue operations in one structure.
Python collections.deque, C++ std::deque, and ring-buffer designs are typical. Sliding-window maximum and BFS variants that need both ends use deques.