ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
CxxUtils
CxxUtils
libcalg
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
37
38
#ifndef ALGORITHM_BINOMIAL_HEAP_H
39
#define ALGORITHM_BINOMIAL_HEAP_H
40
41
#ifdef __cplusplus
42
extern
"C"
{
43
#endif
44
52
53
typedef
enum
{
55
56
BINOMIAL_HEAP_TYPE_MIN
,
57
59
60
BINOMIAL_HEAP_TYPE_MAX
61
}
BinomialHeapType
;
62
66
67
typedef
void
*
BinomialHeapValue
;
68
72
73
#define BINOMIAL_HEAP_NULL ((void *) 0)
74
84
85
typedef
int (*
BinomialHeapCompareFunc
)(
BinomialHeapValue
value1,
86
BinomialHeapValue
value2);
87
91
92
typedef
struct
_BinomialHeap
BinomialHeap
;
93
103
104
BinomialHeap
*
binomial_heap_new
(
BinomialHeapType
heap_type,
105
BinomialHeapCompareFunc
compare_func);
106
112
113
void
binomial_heap_free
(
BinomialHeap
*heap);
114
124
125
int
binomial_heap_insert
(
BinomialHeap
*heap,
BinomialHeapValue
value);
126
134
135
BinomialHeapValue
binomial_heap_pop
(
BinomialHeap
*heap);
136
143
144
int
binomial_heap_num_entries
(
BinomialHeap
*heap);
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.
binomial_heap_new
BinomialHeap * binomial_heap_new(BinomialHeapType heap_type, BinomialHeapCompareFunc compare_func)
Create a new BinomialHeap.
BinomialHeap
struct _BinomialHeap BinomialHeap
A binomial heap data structure.
Definition
binomial-heap.h:92
BinomialHeapCompareFunc
int(* BinomialHeapCompareFunc)(BinomialHeapValue value1, BinomialHeapValue value2)
Type of function used to compare values in a binomial heap.
Definition
binomial-heap.h:85
BinomialHeapType
BinomialHeapType
Heap type.
Definition
binomial-heap.h:53
BINOMIAL_HEAP_TYPE_MAX
@ BINOMIAL_HEAP_TYPE_MAX
A maximum heap.
Definition
binomial-heap.h:60
BINOMIAL_HEAP_TYPE_MIN
@ BINOMIAL_HEAP_TYPE_MIN
A minimum heap.
Definition
binomial-heap.h:56
binomial_heap_num_entries
int binomial_heap_num_entries(BinomialHeap *heap)
Find the number of values stored in a binomial heap.
BinomialHeapValue
void * BinomialHeapValue
A value stored in a BinomialHeap.
Definition
binomial-heap.h:67
binomial_heap_insert
int binomial_heap_insert(BinomialHeap *heap, BinomialHeapValue value)
Insert a value into a binomial heap.
binomial_heap_free
void binomial_heap_free(BinomialHeap *heap)
Destroy a binomial heap.
Generated on
for ATLAS Offline Software by
1.17.0