## Learning Outcomes

At the end of this lecture, you’ll be able to:

- Explain and trace the
**core operations of Queue**(enqueue, dequeue, front, empty). - Describe the difference between
`enqueue`

and`dequeue`

. - Implement the core operations of Queue efficiently (array based and linked base).
- Explain why an efficient linked implementation of Queue requires a
**tail**pointer. - Explain why an efficient array based implementation of Queue can logically be viewed as a
**circular data structure**. - Define
*Steque*,*Quack*, and**Deque**ADT.

## Lecture Plan

In this lecture, we'll cover the following lessons:

- Queue Abstract Data Type
- Queue Interface
- Linked Implementation of Queue⚡
- Trace Linked Implementation⚡
- LinkedQueue⚡
- Array Implementation of Queue⚡
- Trace Array Implementation⚡
- ArrayQueue⚡
- Restricted Data Structures: Mixing it up!⚡

Lessons marked with ⚡ contain exercise/activity.