Woolz Image Processing  Version 1.7.5
_AlcCPQQueue Struct Reference

An \(O(1)\) priority queue based on the Calendar Priority Queue data structure. Typedef: AlcCPQQueue. More...

Data Fields

int nItem
 
int nBucket
 
int nItemIncThr
 
int nItemDecThr
 
int lastIdx
 
int itemBlockSz
 
int bucketBase
 
int maxBucket
 
int resizable
 
float lastPriority
 
double bucketWidth
 
double bucketMin
 
struct _AlcCPQItem ** buckets
 
struct _AlcCPQItemfreeItem
 
struct _AlcBlockStackfreeStack
 

Detailed Description

An \(O(1)\) priority queue based on the Calendar Priority Queue data structure. Typedef: AlcCPQQueue.

Field Documentation

int _AlcCPQQueue::nItem

Number of items in the queue.

Referenced by AlcCPQItemInsert(), AlcCPQItemUnlink(), and AlcCPQQueueNew().

int _AlcCPQQueue::nBucket

Number of buckets for items.

Referenced by AlcCPQItemInsert(), AlcCPQItemUnlink(), and AlcCPQQueueNew().

int _AlcCPQQueue::nItemIncThr

Threshold number of items, at which the number of buckets is increased.

Referenced by AlcCPQItemInsert(), AlcCPQItemUnlink(), and AlcCPQQueueNew().

int _AlcCPQQueue::nItemDecThr

Threshold number of items, at which the number of buckets is decreased.

Referenced by AlcCPQItemUnlink(), and AlcCPQQueueNew().

int _AlcCPQQueue::lastIdx

The index (offset by bucketBase) of the last bucket from which an item was dequeued or the index of a top priority item that has been inserted. A negative value is used to indicate that the index is invalid.

Referenced by AlcCPQItemInsert(), AlcCPQItemUnlink(), and AlcCPQQueueNew().

int _AlcCPQQueue::itemBlockSz

Number of items allocated in each block by AlcBlockStackNew().

Referenced by AlcCPQItemUnlink(), and AlcCPQQueueNew().

int _AlcCPQQueue::bucketBase

The offset into the allocated buckets of the current buckets.

Referenced by AlcCPQItemUnlink(), and AlcCPQQueueNew().

int _AlcCPQQueue::maxBucket

The total number of buckets that have been allocated.

Referenced by AlcCPQItemUnlink(), and AlcCPQQueueNew().

int _AlcCPQQueue::resizable

Non-zero if the queue is resizable.

Referenced by AlcCPQItemInsert(), AlcCPQItemUnlink(), and AlcCPQQueueNew().

float _AlcCPQQueue::lastPriority

The priority of either the last item dequeued or of the top priority item that has been inserted.

Referenced by AlcCPQItemInsert(), AlcCPQItemUnlink(), and AlcCPQQueueNew().

double _AlcCPQQueue::bucketWidth

The width of each bucket.

Referenced by AlcCPQItemInsert(), AlcCPQItemUnlink(), and AlcCPQQueueNew().

double _AlcCPQQueue::bucketMin

The minimum priority for the bucket with (offset) index lastIdx. A negative value is used to indicate that the minimum priority is invalid.

Referenced by AlcCPQItemInsert(), AlcCPQItemUnlink(), and AlcCPQQueueNew().

struct _AlcCPQItem** _AlcCPQQueue::buckets

Contiguous array of buckets.

Referenced by AlcCPQItemUnlink(), AlcCPQQueueFree(), and AlcCPQQueueNew().

struct _AlcCPQItem* _AlcCPQQueue::freeItem

List of items available for use in the priority queue.

Referenced by AlcCPQItemFree(), AlcCPQItemNew(), and AlcCPQItemUnlink().

struct _AlcBlockStack* _AlcCPQQueue::freeStack

Free stack used to efficiently allocate and free blocks of queue items.

Referenced by AlcCPQItemUnlink(), and AlcCPQQueueFree().


The documentation for this struct was generated from the following file: