-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
977545c
commit a8ee8e6
Showing
1 changed file
with
17 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,23 @@ | ||
#pragma once | ||
|
||
#include <cstddef> | ||
#include <vector> | ||
|
||
class CircularQueue { | ||
private: | ||
std::vector<int> storage; // Dynamic array to store elements | ||
size_t max_capacity; // Maximum size of the queue | ||
size_t current_size; // Current count of elements | ||
size_t head_index; // Index of the front element | ||
size_t tail_index; // Index of the rear element | ||
|
||
public: | ||
CircularQueue(size_t size); // создать очередь с определенным размером буффера | ||
bool Push(int value); // добавить значение в конец очереди (false, если очередь заполнена) | ||
bool Pop(); // удалить значение из начала очереди (false, если очередь пустая) | ||
int Front() const; // получить значение из начала очереди (-1, если очередь пустая) | ||
int Back() const; // получить значение из конца очереди (-1, если очередь пустая) | ||
bool Empty() const; // проверить пустая ли очередь | ||
bool Full() const; // проверить заполнена ли очередь | ||
CircularQueue(size_t max_size); // Constructor | ||
|
||
bool Push(int value); // Add value to the end | ||
bool Pop(); // Remove value from the front | ||
int Front() const; // Get front value | ||
int Back() const; // Get back value | ||
|
||
bool IsEmpty() const; // Check if empty | ||
bool IsFull() const; // Check if full | ||
}; |