What are the key differences between a stack and a queue in data structures, an

What are the key differences between a stack and a queue in data structures, and in which scenarios would each be most appropriately used?