Skip to content

Commit

Permalink
try3
Browse files Browse the repository at this point in the history
  • Loading branch information
SaNiokIV committed Dec 22, 2024
1 parent 2805170 commit 0b93d98
Showing 1 changed file with 34 additions and 38 deletions.
72 changes: 34 additions & 38 deletions LibraryCPP/queue.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,59 +3,55 @@
#include <cstdlib>

struct Queue {

Check warning on line 5 in LibraryCPP/queue.cpp

View workflow job for this annotation

GitHub Actions / cpp-linter

LibraryCPP/queue.cpp:5:8 [cppcoreguidelines-pro-type-member-init]

constructor does not initialize these fields: vector, front, size
Vector* vector;
size_t front;
size_t back;
size_t size;
Vector* vector;
size_t front;
size_t size;
};

Queue* queue_create() {
Queue* queue = new Queue;
queue->vector = vector_create();
vector_resize(queue->vector, 1);
queue->front = queue->back = queue->size = 0;
return queue;
Queue* queue = new Queue;
queue->vector = vector_create();
vector_resize(queue->vector, 1);
queue->front = 0;
queue->size = 0;
return queue;
}

void queue_delete(Queue* queue) {
vector_delete(queue->vector);
delete queue;
vector_delete(queue->vector);
delete queue;
}

void queue_insert(Queue* queue, Data data) {
if (queue->size == vector_size(queue->vector)) {
Vector* new_vector = vector_create();
vector_resize(new_vector, queue->size * 2);
for (size_t i = 0; i < queue->size; i++) {
vector_set(new_vector, i, vector_get(queue->vector, (queue->front + i) % vector_size(queue->vector)));
}
vector_delete(queue->vector);
queue->vector = new_vector;
queue->back = queue->size;
queue->front = 0;
}
vector_set(queue->vector, queue->back, data);
queue->back = (queue->back + 1) % vector_size(queue->vector);
queue->size++;
if (queue->size == vector_size(queue->vector)) {
Vector* new_vector = vector_create();
vector_resize(new_vector, queue->size * 2);
for (size_t i = 0; i < queue->size; i++) {
vector_set(new_vector, i, vector_get(queue->vector, (queue->front + i) % vector_size(queue->vector)));
}
vector_delete(queue->vector);
queue->vector = new_vector;
queue->front = 0;
}
size_t back = (queue->front + queue->size) % vector_size(queue->vector);
vector_set(queue->vector, back, data);
queue->size++;
}

Data queue_get(const Queue* queue) {
if (queue_empty(queue) || queue == nullptr) {
return (Data)0;
}
return vector_get(queue->vector, queue->front);
if (queue_empty(queue) || queue == nullptr) {
return (Data)0;
}
return vector_get(queue->vector, queue->front);
}

void queue_remove(Queue* queue) {
if (!queue_empty(queue)) {
queue->front = (queue->front + 1) % vector_size(queue->vector);
queue->size--;
}
if (!queue_empty(queue)) {
queue->front = (queue->front + 1) % vector_size(queue->vector);
queue->size--;
}
}

bool queue_empty(const Queue* queue) {
if (queue != nullptr && queue->size == 0) {
return true;
}
return false;
}
return queue != nullptr && queue->size == 0;
}

0 comments on commit 0b93d98

Please sign in to comment.