GCC Middle and Back End API Reference
fibonacci_node< K, V > Class Template Reference

#include <fibonacci_heap.h>

Inheritance diagram for fibonacci_node< K, V >:
Collaboration diagram for fibonacci_node< K, V >:

Public Member Functions

 fibonacci_node ()
 
 fibonacci_node (K key, V *data=NULL)
 
int compare (fibonacci_node_t *other)
 
int compare_data (K key)
 
fibonacci_node_tremove ()
 
void link (fibonacci_node_t *parent)
 
get_key ()
 
V * get_data ()
 

Private Types

typedef fibonacci_node< K, V > fibonacci_node_t
 

Private Member Functions

void insert_after (fibonacci_node_t *b)
 
void insert_before (fibonacci_node_t *b)
 

Private Attributes

fibonacci_nodem_parent
 
fibonacci_nodem_child
 
fibonacci_nodem_left
 
fibonacci_nodem_right
 
m_key
 
V * m_data
 
unsigned int m_degree: 31
 
unsigned int m_mark: 1
 

Friends

class fibonacci_heap< K, V >
 

Detailed Description

template<class K, class V>
class fibonacci_node< K, V >
Fibonacci heap node class.   

Member Typedef Documentation

◆ fibonacci_node_t

template<class K, class V>
typedef fibonacci_node<K,V> fibonacci_node< K, V >::fibonacci_node_t
private

Constructor & Destructor Documentation

◆ fibonacci_node() [1/2]

template<class K, class V>
fibonacci_node< K, V >::fibonacci_node ( )
inline

Referenced by insert_after(), link(), and remove().

◆ fibonacci_node() [2/2]

template<class K, class V>
fibonacci_node< K, V >::fibonacci_node ( K key,
V * data = NULL )
inline

Member Function Documentation

◆ compare()

◆ compare_data()

template<class K, class V>
int fibonacci_node< K, V >::compare_data ( K key)
inline

◆ get_data()

template<class K, class V>
V * fibonacci_node< K, V >::get_data ( )
inline

Referenced by update_edge_key().

◆ get_key()

template<class K, class V>
K fibonacci_node< K, V >::get_key ( )
inline

Referenced by update_edge_key().

◆ insert_after()

template<class K, class V>
void fibonacci_node< K, V >::insert_after ( fibonacci_node_t * b)
private
Put node B after this node.   

References a, b, and fibonacci_node().

◆ insert_before()

template<class K, class V>
void fibonacci_node< K, V >::insert_before ( fibonacci_node_t * b)
inlineprivate

Referenced by link().

◆ link()

template<class K, class V>
void fibonacci_node< K, V >::link ( fibonacci_node_t * parent)
Link the node with PARENT.   

References fibonacci_node(), insert_before(), m_child, m_degree, m_mark, m_parent, and NULL.

◆ remove()

template<class K, class V>
fibonacci_node< K, V > * fibonacci_node< K, V >::remove ( )
Remove fibonacci heap node.   

References fibonacci_node(), m_left, m_parent, m_right, and NULL.

Referenced by fibonacci_heap< K, V >::cut(), and fibonacci_heap< K, V >::remove_root().

Friends And Related Symbol Documentation

◆ fibonacci_heap< K, V >

template<class K, class V>
friend class fibonacci_heap< K, V >
friend

Field Documentation

◆ m_child

template<class K, class V>
fibonacci_node* fibonacci_node< K, V >::m_child
private

◆ m_data

◆ m_degree

template<class K, class V>
unsigned int fibonacci_node< K, V >::m_degree
private

◆ m_key

◆ m_left

◆ m_mark

template<class K, class V>
unsigned int fibonacci_node< K, V >::m_mark
private

◆ m_parent

◆ m_right


The documentation for this class was generated from the following file: