Queue is data structure where you can traverse through node in one direction. Queue follows FIFO (First In First Out) structure. If an element is added to the queue, it will also be the removed first from the queue.

General Idea:


Each node in a queue is connected with each other with a uni-directional edges. We use pointers head & tail to perform insert/delete operations in a queue. A pointer next is used by each node to point to the next node in the queue.


Operations:


Insert : We add an element to the end/tail of queue
Delete : We delete from the head/start of the queue
Peek : We can check what is the first element of queue using peek
Traverse: We traverse from head/start to tail/end of the queue