Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
bheap.h
Go to the documentation of this file.
1
29#pragma once
30
33
34
35#pragma GCC visibility push(default)
36namespace abacus {
37
38template<class Type, class Key>
39class AbaBHeap;
40
41template<class Type,class Key>
42std::ostream&operator<< (std::ostream& out, const AbaBHeap<Type, Key>& heap);
43
44
46
73template<class Type, class Key> class AbaBHeap : public AbacusRoot {
74public:
75
77
80 explicit AbaBHeap(int size);
81
83
92 const ArrayBuffer<Type> &elems,
93 const ArrayBuffer<Key> &keys);
94
96
104 friend std::ostream& operator<< <> (std::ostream &out, const AbaBHeap<Type, Key> &heap);
105
107
114 void insert(Type elem, Key key);
115
117
122 Type getMin() const;
123
125
130 Key getMinKey() const;
131
133
145
146
148 void clear();
149
151 int size() const;
152
154 int number() const;
155
157 bool empty() const;
158
160
163 void realloc(int newSize);
164
166
169 void check() const;
170
171private:
172
174 int leftSon(int i) const;
175
177 int rightSon(int i) const;
178
180 int father(int i) const;
181
183
188 void heapify(int i);
189
192 int n_;
193};
194
195}
196
198#pragma GCC visibility pop
Declaration and implementation of ArrayBuffer class.
Binary heaps.
Definition bheap.h:73
void heapify(int i)
Is the central function to maintain the heap property.
AbaBHeap(int size)
A constructor.
int number() const
Returns the number of elements in the heap.
Type extractMin()
Accesses and removes the minimum element from the heap.
bool empty() const
Return true if there are no elements in the heap, false otherwise.
Key getMinKey() const
Returns the key of the minimum element of the heap.
int size() const
Returns the maximal number of elements which can be stored in the heap.
int father(int i) const
Returns the index of the father of element i.
void clear()
Empties the heap.
int rightSon(int i) const
Returns the index of the right son of node i.
void realloc(int newSize)
Changes the size of the heap.
AbaBHeap(const ArrayBuffer< Type > &elems, const ArrayBuffer< Key > &keys)
A constructor with initialization.
void insert(Type elem, Key key)
Inserts an item with a key into the heap.
Type getMin() const
Returns the minimum element of the heap.
Array< Type > heap_
Definition bheap.h:190
void check() const
Throws an exception if the heap properties are violated.
Array< Key > keys_
Definition bheap.h:191
int leftSon(int i) const
Returns the index of the left son of node i.
Base class of all other classes of ABACUS.
Definition abacusroot.h:69
An array that keeps track of the number of inserted elements; also usable as an efficient stack.
Definition ArrayBuffer.h:64
The parameterized class Array implements dynamic arrays of type E.
Definition Array.h:219
std::ostream & operator<<(std::ostream &out, const Active< BaseType, CoType > &rhs)