Can you explain the time and space complexity of common operations on lists, arrays, stacks, and queues?