Welcome to Day 38 of the DSA Coding Challenge:


Todays Goals:


Question 1:Construct Queue

Implement a Queue:

1. Using an Array

2. with a Queue class using a Linked list

One should be able to add to the queue and remove from the queue following the FIFO property.


Question 2:Implement Queue with Stack

Implement a first in first out (FIFO) queue using only two stacks. The implemented queue should support all the functions of a normal queue (push, peek, pop, and empty).

Implement the MyQueue class:

push(val) Pushes element val to the back of the queue.

pop() Removes the element from the front of the queue and returns it.

peek() Returns the element at the front of the queue.

empty() Returns true if the queue is empty, false otherwise.

Notes: You must use only standard operations of a stack, which means only push to top, peek/pop from top, size, and is empty operations are valid. Depending on your language, the stack may not be supported natively. You may simulate a stack using a list or deque (double-ended queue) as long as you use only a stack's standard operations. Follow-up: Implement the queue such that each operation is amortized O(1) time complexity. In other words, performing n operations will take overall O(n) time even if one of those operations may take longer.


All the best!