circular FIFO queue
Functions | |
SCIP_RETCODE | SCIPqueueCreate (SCIP_QUEUE **queue, int initsize, SCIP_Real sizefac) |
void | SCIPqueueFree (SCIP_QUEUE **queue) |
void | SCIPqueueClear (SCIP_QUEUE *queue) |
SCIP_RETCODE | SCIPqueueInsert (SCIP_QUEUE *queue, void *elem) |
void * | SCIPqueueRemove (SCIP_QUEUE *queue) |
void * | SCIPqueueFirst (SCIP_QUEUE *queue) |
SCIP_Bool | SCIPqueueIsEmpty (SCIP_QUEUE *queue) |
int | SCIPqueueNElems (SCIP_QUEUE *queue) |
SCIP_RETCODE SCIPqueueCreate | ( | SCIP_QUEUE ** | queue, |
int | initsize, | ||
SCIP_Real | sizefac | ||
) |
creates a (circular) queue, best used if the size will be fixed or will not be increased that much
queue | pointer to the new queue |
initsize | initial number of available element slots |
sizefac | memory growing factor applied, if more element slots are needed |
Definition at line 932 of file misc.c.
References BMSallocMemory, MAX, queueResize(), SCIP_ALLOC, SCIP_CALL, and SCIP_OKAY.
Referenced by createReopttree().
void SCIPqueueFree | ( | SCIP_QUEUE ** | queue | ) |
frees queue, but not the data elements themselves
queue | pointer to a queue |
Definition at line 956 of file misc.c.
References BMSfreeMemory, and BMSfreeMemoryArray.
Referenced by freeReoptTree().
void SCIPqueueClear | ( | SCIP_QUEUE * | queue | ) |
clears the queue, but doesn't free the data elements themselves
queue | queue |
Definition at line 967 of file misc.c.
References SCIP_Queue::firstfree, and SCIP_Queue::firstused.
Referenced by clearReoptnodes().
SCIP_RETCODE SCIPqueueInsert | ( | SCIP_QUEUE * | queue, |
void * | elem | ||
) |
inserts element at the end of the queue
queue | queue |
elem | element to be inserted |
Definition at line 978 of file misc.c.
References BMSmoveMemoryArray, SCIP_Queue::firstfree, SCIP_Queue::firstused, queueResize(), SCIP_CALL, SCIP_OKAY, SCIP_Queue::size, and SCIP_Queue::slots.
Referenced by clearReoptnodes(), createReopttree(), deleteChildrenBelow(), dryBranch(), reopttreeCheckMemory(), SCIPreoptDeleteNode(), and shrinkNode().
void* SCIPqueueRemove | ( | SCIP_QUEUE * | queue | ) |
removes and returns the first element of the queue
queue | queue |
Definition at line 1022 of file misc.c.
References SCIP_Queue::firstfree, SCIP_Queue::firstused, SCIP_Queue::size, and SCIP_Queue::slots.
Referenced by addNode(), SCIPreoptApplyCompression(), and SCIPreoptSplitRoot().
void* SCIPqueueFirst | ( | SCIP_QUEUE * | queue | ) |
returns the first element of the queue without removing it
queue | queue |
Definition at line 1056 of file misc.c.
References SCIP_Queue::firstfree, SCIP_Queue::firstused, SCIP_Queue::size, and SCIP_Queue::slots.
SCIP_Bool SCIPqueueIsEmpty | ( | SCIP_QUEUE * | queue | ) |
returns whether the queue is empty
queue | queue |
Definition at line 1074 of file misc.c.
References SCIP_Queue::firstfree, SCIP_Queue::firstused, and SCIP_Queue::size.
Referenced by reopttreeCheckMemory().
int SCIPqueueNElems | ( | SCIP_QUEUE * | queue | ) |
returns the number of elements in the queue
queue | queue |
Definition at line 1087 of file misc.c.
References SCIP_Queue::firstfree, SCIP_Queue::firstused, and SCIP_Queue::size.
Referenced by clearReoptnodes(), createReoptnode(), and createReopttree().