/* * Copyright ©2026 Justin Hsia and Amber Hu. All rights reserved. * Permission is hereby granted to students registered for University of * Washington CSE 333 for use solely during Winter Quarter 2026 for * purposes of the course. No other use, copying, distribution, or * modification is permitted without prior written consent. Copyrights * for third-party components of this work must be honored. Instructors * interested in reusing these course materials should contact the * authors. */ #ifndef EX17_SIMPLEQUEUE_H_ #define EX17_SIMPLEQUEUE_H_ #include using std::string; // A simple FIFO queue class that stores strings // Your task: Make SimpleQueue thread safe! class SimpleQueue { public: SimpleQueue(); ~SimpleQueue(); // Enqueues the given item void Enqueue(string item); // Dequeues the item at the front of the queue // and stores it at the location pointed to by result. // Returns true if there was an item to return and // false if the queue was empty. bool Dequeue(string* result); // Returns the size of the queue int Size() const; // Returns true if the queue if empty, false otherwise bool IsEmpty() const; private: struct node { string item; node* next; } *front, *end; int size; }; // class SimpleQueue #endif // EX17_SIMPLEQUEUE_H_