File tree 5 files changed +7
-2
lines changed 5 files changed +7
-2
lines changed Original file line number Diff line number Diff line change 4
4
// child indices of a heap
5
5
static inline size_t left (size_t i) { return i << 1 ; }
6
6
static inline size_t right (size_t i) { return (i << 1 ) + 1 ; }
7
- static inline size_t parent (size_t i) { return i >> 1 ; }
7
+
8
+ inline size_t BinaryHeap::parent (size_t i) const { return i >> 1 ; }
8
9
9
10
bool BinaryHeap::is_valid () const {
10
11
if (heap_.empty ()) {
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ class BinaryHeap : public KAryHeap {
11
11
12
12
private:
13
13
void sift_down (size_t hole) final ;
14
+ size_t parent (size_t i) const final ;
14
15
};
15
16
16
17
#endif // VTR_BINARY_HEAP_H
Original file line number Diff line number Diff line change 2
2
#include " vtr_log.h"
3
3
4
4
static inline size_t first_child (size_t i) { return (i << 2 ) - 2 ; }
5
- static inline size_t parent (size_t i) { return (i + 2 ) >> 2 ; }
5
+
6
+ inline size_t FourAryHeap::parent (size_t i) const { return (i + 2 ) >> 2 ; }
6
7
7
8
inline size_t FourAryHeap::smallest_child (size_t i) const {
8
9
// Returns first_child(i) if i has no children
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ class FourAryHeap : public KAryHeap {
11
11
12
12
private:
13
13
void sift_down (size_t hole) final ;
14
+ size_t parent (size_t i) const final ;
14
15
size_t smallest_child (size_t i) const ;
15
16
};
16
17
Original file line number Diff line number Diff line change @@ -37,6 +37,7 @@ class KAryHeap : public HeapInterface {
37
37
void prune_heap ();
38
38
39
39
virtual void sift_down (size_t hole) = 0;
40
+ virtual size_t parent (size_t i) const = 0;
40
41
41
42
HeapStorage storage_;
42
43
You can’t perform that action at this time.
0 commit comments