/* * squeue.cpp * * Created on: 29.10.2013 * Author: trifon */ #include "queue.h" const int MAXQ = 100; template class SQueue : public Queue { private: T queue[MAXQ]; int front, back; public: SQueue() : front(0), back(0) {} // проверка дали опашката е празна bool empty() const { return front == back; } // добавяне на елемент накрая на опашката bool push(T const& x) { if ((back + 1) % MAXQ == front) return false; queue[back++] = x; back %= MAXQ; // if (back == MAXQ) back = 0; return true; } // изваждане на елемент от началото на опашката bool pop(T& x) { if (empty()) return false; x = queue[front++]; front %= MAXQ; return true; } // извличане на главата на опашкта bool head(T& x) const { if (empty()) return false; x = queue[front]; return true; } };