Removing an element can also be performed from the front side only, which is done by using the Dequeue() operation. This is similar to the RemoveHead() operation in the LinkedList data type—removing the current front node and then assigning the next element as the new front element. The implementation should be as follows:
template <typename T>void Queue<T>::Dequeue(){ // Do nothing if list is empty if(m_count == 0) return; // Save the current Front // to a new node Node<T> * node = m_front; // Point the Front pointer // to the element next to the current Front m_front = m_front->Next; // Now it's safe to remove // the first element delete node; // One element is removed m_count--;}
Similar to the