ATLAS Offline Software
binomial-heap.h
Go to the documentation of this file.
1 /*
2 
3 Copyright (c) 2005-2008, Simon Howard
4 
5 Permission to use, copy, modify, and/or distribute this software
6 for any purpose with or without fee is hereby granted, provided
7 that the above copyright notice and this permission notice appear
8 in all copies.
9 
10 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11 WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12 WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13 AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
14 CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15 LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
16 NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
17 CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18 
19  */
20 
38 #ifndef ALGORITHM_BINOMIAL_HEAP_H
39 #define ALGORITHM_BINOMIAL_HEAP_H
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
53 typedef enum {
57 
62 
67 typedef void *BinomialHeapValue;
68 
73 #define BINOMIAL_HEAP_NULL ((void *) 0)
74 
86  BinomialHeapValue value2);
87 
92 typedef struct _BinomialHeap BinomialHeap;
93 
105  BinomialHeapCompareFunc compare_func);
106 
114 
126 
136 
145 
146 #ifdef __cplusplus
147 }
148 #endif
149 
150 #endif /* #ifndef ALGORITHM_BINOMIAL_HEAP_H */
151 
binomial_heap_pop
BinomialHeapValue binomial_heap_pop(BinomialHeap *heap)
Remove the first value from a binomial heap.
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
BinomialHeap
struct _BinomialHeap BinomialHeap
A binomial heap data structure.
Definition: binomial-heap.h:92
BinomialHeapType
BinomialHeapType
Heap type.
Definition: binomial-heap.h:53
athena.value
value
Definition: athena.py:122
BinomialHeapValue
void * BinomialHeapValue
A value stored in a BinomialHeap.
Definition: binomial-heap.h:67
BinomialHeapCompareFunc
int(* BinomialHeapCompareFunc)(BinomialHeapValue value1, BinomialHeapValue value2)
Type of function used to compare values in a binomial heap.
Definition: binomial-heap.h:85
binomial_heap_free
void binomial_heap_free(BinomialHeap *heap)
Destroy a binomial heap.
binomial_heap_num_entries
int binomial_heap_num_entries(BinomialHeap *heap)
Find the number of values stored in a binomial heap.
BINOMIAL_HEAP_TYPE_MIN
@ BINOMIAL_HEAP_TYPE_MIN
A minimum heap.
Definition: binomial-heap.h:56
binomial_heap_new
BinomialHeap * binomial_heap_new(BinomialHeapType heap_type, BinomialHeapCompareFunc compare_func)
Create a new BinomialHeap.
binomial_heap_insert
int binomial_heap_insert(BinomialHeap *heap, BinomialHeapValue value)
Insert a value into a binomial heap.
BINOMIAL_HEAP_TYPE_MAX
@ BINOMIAL_HEAP_TYPE_MAX
A maximum heap.
Definition: binomial-heap.h:60