Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void push(priority_queue* queue, value_type value, uint remaining_time) {
- priority_queue_item *item;
- item = malloc(sizeof(priority_queue_item));
- item->value = value;
- item->remaining_time = remaining_time;
- item->next = NULL;
- item->previous = NULL;
- if (queue->size != 0) {
- if(item->remaining_time <= queue->first->remaining_time) { // radime na zacatek fronty
- item->previous = queue->first;
- } else { // radime doprostred nebo na konec fronty
- item->next = queue->first;
- while (item->remaining_time > temp->remaining_time && item->next->previous != NULL)
- item->next = item->next->previous;
- item->previous = item->next->previous;
- }
- }
- if (item->next == NULL) {
- queue->first = item;
- } else {
- queue->next->previous = item;
- }
- if (item->previous == NULL) {
- queue->last = item;
- } else {
- queue->previous->next = item;
- }
- queue->size++;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement