#include "Queue.h" #include "DataStructuresStudent.h" #include "Node.h" #include "Queue.h" #include <iostream> #include <string> using namespace std; typedef DataStructuresStudent type; Queue::Queue() { front = back = NULL; } void Queue::setFront(Node < type * > * h) { front = h; } void Queue::setBack(Node < type * > * h) { back = h; } type * Queue::peek() { return front -> data; } type * Queue::Back() { return back -> data; } int Queue::count() { Node < type * > * temp = front; int c = 0; while (temp != NULL) { c++; temp = temp -> next; } return c; } bool Queue::isEmpty() { return ((front == NULL) && (back == NULL)); } void Queue::enqueue(type * n) { Node < type * > * temp = new Node < type * > (n); if (isEmpty()) front = back = temp; else { back -> next = temp; back = temp; } } type * Queue::dequeue() { Node < type * > * result; result = front; type * data = front -> data; if (count() == 1) back = back -> next; front = front -> next; delete result; return data; } void Queue::traverse() { Node < type * > * temp = front; while (temp != NULL) { cout << * temp -> data << "\n"; temp = temp -> next; } } ostream & operator << (ostream & o, Queue q) { q.traverse(); return o; }