Queue is also an abstract data type in which the elements are inserted from one end called REAR/BACK, and the deletion of existing elements takes place from the other end called as FRONT/HEAD. This makes queue as FIFO data structure, which means that element inserted first will also be removed first.
Enqueue():
Adding the element into the back of the queue.
Dequeue():
Removing the element from the front of the queue.
Following image will explain these operations better:
Implementation:
template<class T>
class Queue
{
public:
Queue<T>(){}
void enque(T elem);
void deque();
T front();
bool empty();
~Queue(){}
private:
std::list<T> m_list;
};
template<class T>
void Queue<T>::enque(T elem)
{
m_list.push_back(elem);
}
template<class T>
void Queue<T>::deque()
{
m_list.pop_front();
}
template<class T>
T Queue<T>::front()
{
return m_list.front();
}
template<class T>
bool Queue<T>::empty()
{
return m_list.empty();
}
Complexity: O(1) for all of the above operations.
No comments:
Post a Comment