22 #ifndef DOXYGEN_SHOULD_SKIP_THIS
23 struct FibonacciHeapNode
26 FibonacciHeapNode* parent;
29 FibonacciHeapNode* child;
32 FibonacciHeapNode* left;
35 FibonacciHeapNode* right;
56 class CFibonacciHeap:
public CSGObject
63 CFibonacciHeap(int32_t capacity);
65 virtual inline const char* get_name()
const
67 return "FibonacciHeap";
70 virtual ~CFibonacciHeap();
73 int32_t get_num_nodes()
const
78 int32_t get_num_trees()
83 int32_t get_capacity()
91 void insert(int32_t index,
float64_t key);
105 int32_t get_key(int32_t index,
float64_t &ret_key);
110 void decrease_key(int32_t index,
float64_t key);
116 void add_to_roots(FibonacciHeapNode *up_node);
122 void link_nodes(FibonacciHeapNode *right, FibonacciHeapNode *left);
125 void clear_node(int32_t index);
128 void cut(FibonacciHeapNode *child, FibonacciHeapNode *parent);
130 void cascading_cut(FibonacciHeapNode* tree);
134 FibonacciHeapNode* min_root;
137 FibonacciHeapNode** nodes;
146 int32_t max_num_nodes;
149 FibonacciHeapNode **A;