X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=src%2FQueue.c;h=0b22edf3fee95a36222e5cb73361d84e55a481c5;hb=e45132acdb58c076d5e06849fa51c26de9a7486d;hp=794fa89ded0f894ab7edec46e7a1d5488d9e68d5;hpb=ea7acb53d67057ce642c6d57df8c3d11118c7e74;p=cgds.git diff --git a/src/Queue.c b/src/Queue.c index 794fa89..0b22edf 100644 --- a/src/Queue.c +++ b/src/Queue.c @@ -6,64 +6,59 @@ void _queue_init(Queue* queue, size_t dataSize) { - queue->dataSize = dataSize; - _vector_init(queue->array, dataSize); + queue->dataSize = dataSize; + _list_init(queue->list, dataSize); } Queue* _queue_new(size_t dataSize) { - Queue* queue = (Queue*) safe_malloc(sizeof (Queue)); - queue->array = _vector_new(dataSize); - _queue_init(queue, dataSize); - return queue; + Queue* queue = (Queue*) safe_malloc(sizeof (Queue)); + queue->list = _list_new(dataSize); + _queue_init(queue, dataSize); + return queue; } Queue* queue_copy(Queue* queue) { - Queue* queueCopy = (Queue*) safe_malloc(sizeof (Queue)); - queueCopy->dataSize = queue->dataSize; - Vector* arrayCopy = vector_copy(queue->array); - queueCopy->array = arrayCopy; - return queueCopy; + Queue* queueCopy = (Queue*) safe_malloc(sizeof (Queue)); + queueCopy->dataSize = queue->dataSize; + List* listCopy = list_copy(queue->list); + queueCopy->list = listCopy; + return queueCopy; } -Bool queue_empty(Queue* queue) +bool queue_empty(Queue* queue) { - return vector_empty(queue->array); + return list_empty(queue->list); } UInt queue_size(Queue* queue) { - return vector_size(queue->array); + return list_size(queue->list); } void _queue_push(Queue* queue, void* data) { - _vector_push(queue->array, data); + _list_insert_back(queue->list, data); } void* _queue_peek(Queue* queue) { - return _vector_get(queue->array, 0); + return _list_get(queue->list->head); } void queue_pop(Queue* queue) { - //remove first vector element and shift its internal array - safe_free(queue->array->datas[0]); - queue->array->datas++; - //NOTE: we remove first element, so capacity decrease too - queue->array->size--; - queue->array->capacity--; + list_remove_front(queue->list); } void queue_clear(Queue* queue) { - vector_clear(queue->array); + list_clear(queue->list); } void queue_destroy(Queue* queue) { - vector_destroy(queue->array); - safe_free(queue); + list_destroy(queue->list); + safe_free(queue); }