Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Q_Node.h"
- Q_Node::Q_Node() : element(nullptr), next(nullptr) {};
- Q_Node::~Q_Node()
- {
- next = nullptr;
- }
- void Q_Node::set_element(Node* element)
- {
- this->element = element;
- }
- Node* Q_Node::get_element()
- {
- return element;
- }
- void Q_Node::set_next(Q_Node* pointer)
- {
- next = pointer;
- }
- Q_Node* Q_Node::get_next()
- {
- return next;
- }
- #include "Q_Node.h"
- #include <stdexcept>
- using namespace std;
- class Queue
- {
- private:
- int size;
- Q_Node* first , * last;
- public:
- Queue();
- ~Queue();
- // Adds an element in the end of the queue
- void enqueue(Node*);
- // Extracts the first element of the queue and returns its data
- Node* dequeue();
- //Returns data information of the first element
- Node* peek();
- //Returns the size of the queue
- int get_size();
- };
- Queue::Queue() : size(0), first(NULL), last(NULL) {};
- Queue::~Queue()
- {
- while (first)
- {
- last = first;
- first = first->get_next();
- delete last;
- }
- }
- void Queue::enqueue(Node* element)
- {
- size++;
- Q_Node* temp = new Q_Node;
- temp->set_element(element);
- if (first == NULL)
- {
- first = last = temp;
- }
- else
- {
- last->set_next(temp);
- last = temp;
- }
- }
- Node* Queue::dequeue()
- {
- if (first == NULL)
- throw out_of_range("The queue is empty");
- size--;
- Q_Node* temp = first;
- first = first->get_next();
- Node* element = temp->get_element();
- delete temp;
- return element;
- }
- Node* Queue::peek()
- {
- if (first == NULL)
- throw out_of_range("The queue is empty");
- return first->get_element();
- }
- int Queue::get_size()
- {
- return size;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement