Scippy

SCIP

Solving Constraint Integer Programs

SCIP_PQueue Struct Reference

Detailed Description

priority queue data structure Elements are stored in an array, which grows dynamically in size as new elements are added to the queue. The ordering is done through a pointer comparison function. The array is organized as follows. The root element (that is the "best" element \( r \) with \( r \leq x \) for all \( x \) ) is stored in position 0. The children of an element at position \( p \) are stored at positions \( q_1 = 2*p+1 \) and \( q_2 = 2*p+2 \) . That means, the parent of the element at position \( q \) is at position \( p = (q-1)/2 \) . At any time, the condition holds that \( p \leq q \) for each parent \( p \) and its children \( q \) . Insertion and removal of single elements needs time \( O(log n) \) .

Definition at line 69 of file struct_misc.h.

#include <struct_misc.h>

Public Member Functions

 SCIP_DECL_SORTPTRCOMP ((*ptrcomp))
 
 SCIP_DECL_PQUEUEELEMCHGPOS ((*elemchgpos))
 

Data Fields

SCIP_Real sizefac
 
void ** slots
 
int len
 
int size
 

Member Function Documentation

◆ SCIP_DECL_SORTPTRCOMP()

SCIP_PQueue::SCIP_DECL_SORTPTRCOMP ( ptrcomp)

compares two data elements

◆ SCIP_DECL_PQUEUEELEMCHGPOS()

SCIP_PQueue::SCIP_DECL_PQUEUEELEMCHGPOS ( elemchgpos)

callback to act on position change of elem in priority queue, or NULL

Field Documentation

◆ sizefac

SCIP_Real SCIP_PQueue::sizefac

memory growing factor

Definition at line 71 of file struct_misc.h.

Referenced by pqueueResize().

◆ slots

void** SCIP_PQueue::slots

◆ len

int SCIP_PQueue::len

number of used element slots

Definition at line 75 of file struct_misc.h.

Referenced by SCIPpqueueClear(), SCIPpqueueDelPos(), SCIPpqueueElems(), SCIPpqueueFirst(), SCIPpqueueInsert(), SCIPpqueueNElems(), and SCIPpqueueRemove().

◆ size

int SCIP_PQueue::size

total number of available element slots

Definition at line 76 of file struct_misc.h.

Referenced by pqueueResize().