ScapeGoatTree
Loading...
Searching...
No Matches
queue.tpp
Go to the documentation of this file.
1//
2// Created by DELL on 24/12/2025.
3//
4
5#ifndef TREE_QUEUE_TPP
6#define TREE_QUEUE_TPP
7
8//
9// Created by DELL on 24/12/2025.
10//
11
12#include "queue.hpp"
13
17template<typename T>
18void Queue<T>::push(T value) {
19 if (!head) {
20 auto newNode = new QNode<T>(value);
21 head = newNode;
22 tail = head;
23 nNodes++;
24 return;
25 }
26 QNode<T>* last = tail;
27 auto newNode = new QNode<T>(value);
28 last->next = newNode;
29 tail = newNode;
30 nNodes++;
31}
32
36template<typename T>
38 if (!head)return;
39 QNode<T>* curr = head;
40 head = curr->next;
41 delete curr;
42 if (!head) tail = nullptr;
43 nNodes--;
44}
45
49template<typename T>
50bool Queue<T>::isEmpty() const {
51 return !head;
52}
53
57template<typename T>
59 if (!head) return T{};
60 return head->value;
61}
62
66template<typename T>
67int Queue<T>::size() const {
68 return nNodes;
69}
70
71
72#endif //TREE_QUEUE_TPP
Definition queue.hpp:9
T value
Definition queue.hpp:11
QNode * next
Definition queue.hpp:10
void pop()
Definition queue.tpp:37
bool isEmpty() const
Definition queue.tpp:50
int size() const
Definition queue.tpp:67
T front()
Definition queue.tpp:58
void push(T value)
Definition queue.tpp:18