Queue enqueue
void enqueue(T value)
{
if (isFull())
{
cout << "Queue is already full" << endl;
return;
}
else if (isEmpty())
{
first = 0;
last = 0;
queue[last] = value;
}
else
{
last = (last + 1) % MAXSIZE;
queue[last] = value;
}
}Queue dequeue
void dequeue()
{
if (isEmpty())
{
cout << "Queue is empty " << endl;
return;
}
else if (first == last)
{
first = -1;
last = -1;
}
else
{
first = (first + 1) % MAXSIZE;
}
}Queue peekFront
T peekFront() const
{
if (isEmpty())
{
cout << "Eile tuscia. Nera pirmo elemento." << endl;
return T();
}
else
{
return queue[first];
}
}Queue peekBack
T peekBack() const
{
if (isEmpty())
{
cout << "Eile tuscia. Nera paskutinio elemento." << endl;
return T();
}
else
{
return queue[last];
}
}Queue isEmpty
bool isEmpty() const
{
return first == -1;
}Queue isFull
bool isFull() const
{
return (last + 1) % MAXSIZE == first;
}Queue clear
void clear()
{
first = -1;
last = -1;
}Queue display
template <typename T>
void display(const Queue<T>& q)
{
if (q.isEmpty())
{
cout << "Queue is empty" << endl;
return;
}
Queue<T> qcopy = q;
while (!qcopy.isEmpty())
{
cout << qcopy.front() << " ";
qcopy.dequeue();
}
cout << endl;
}Queue reverse
template <typename T>
void reverse(Queue<T>& q)
{
if (q.isEmpty())
{
cout << "Eile yra tuscia." << endl;
return;
}
stack<T> s;
while (!q.isEmpty())
{
s.push(q.front());
q.dequeue();
}
while (!s.empty())
{
q.enqueue(s.top());
s.pop();
}
}