Junior
What is the difference between the data structures 'stack' and 'queue'?
sobes.tech AI
Answer from AI
Stack — an abstract data type based on the LIFO (Last-In, First-Out) principle. The last added element will be the first to be retrieved.
Queue — an abstract data type based on the FIFO (First-In, First-Out) principle. The first added element will be the first to be retrieved.
Main operations:
| Operation | Stack | Queue |
|---|---|---|
| Add | push() (usually at the end) |
enqueue() (usually at the end) |
| Remove | pop() (from the end) |
dequeue() (from the beginning) |
| View | peek() or top() (element at the end) |
peek() or front() (element at the beginning) |
Applications:
- Stack: function calls (call stack), syntax analysis, undo actions.
- Queue: task scheduling, buffer management (e.g., input-output), breadth-first traversal of graphs (BFS).
Implementation in Python:
For stack, you can use a list, adding and removing elements from the end:
# Stack using a list
stack = []
stack.append('a') # push
stack.append('b') # push
item = stack.pop() # pop
For queue, you can use collections.deque for efficient addition and removal from both ends:
# Queue using collections.deque
from collections import deque
queue = deque()
queue.append('a') # enqueue
queue.append('b') # enqueue
item = queue.popleft() # dequeue