INET Framework for OMNeT++/OMNEST
inet::IntervalTree::Node Class Reference

The node for interval tree. More...

#include <IntervalTree.h>

Public Member Functions

void print (Node *left, Node *right) const
 Print the interval node information: set left = nil and right = root. More...
 
 Node ()
 Create an empty node. More...
 
 Node (const Interval *new_interval)
 Create an node storing the interval. More...
 
 ~Node ()
 

Protected Attributes

const Intervalstored_interval = nullptr
 interval stored in the node More...
 
simtime_t key
 
simtime_t high
 
simtime_t max_high
 
bool red = false
 red or black node: if red = false then the node is black More...
 
Nodeleft = nullptr
 
Noderight = nullptr
 
Nodeparent = nullptr
 

Friends

class IntervalTree
 
class IntervalTreeTest
 

Detailed Description

The node for interval tree.

Constructor & Destructor Documentation

◆ Node() [1/2]

inet::IntervalTree::Node::Node ( )

Create an empty node.

45 {
46 }

◆ Node() [2/2]

inet::IntervalTree::Node::Node ( const Interval new_interval)

Create an node storing the interval.

48  :
49  stored_interval(new_interval), key(new_interval->low), high(new_interval->high), max_high(high)
50 {
51 }

◆ ~Node()

inet::IntervalTree::Node::~Node ( )
54 {
55  delete stored_interval;
56 }

Member Function Documentation

◆ print()

void inet::IntervalTree::Node::print ( Node left,
Node right 
) const

Print the interval node information: set left = nil and right = root.

289 {
291  std::cout << ", k = " << key << ", h = " << high << ", mH = " << max_high;
292  std::cout << " l->key = ";
293  if (left == nil)
294  std::cout << "nullptr";
295  else
296  std::cout << left->key;
297  std::cout << " r->key = ";
298  if (right == nil)
299  std::cout << "nullptr";
300  else
301  std::cout << right->key;
302  std::cout << " p->key = ";
303  if (parent == root)
304  std::cout << "nullptr";
305  else
306  std::cout << parent->key;
307  std::cout << " red = " << (int)red << std::endl;
308 }

Referenced by inet::IntervalTree::recursivePrint().

Friends And Related Function Documentation

◆ IntervalTree

friend class IntervalTree
friend

◆ IntervalTreeTest

friend class IntervalTreeTest
friend

Member Data Documentation

◆ high

◆ key

simtime_t inet::IntervalTree::Node::key
protected

◆ left

◆ max_high

◆ parent

◆ red

bool inet::IntervalTree::Node::red = false
protected

◆ right

◆ stored_interval

const Interval* inet::IntervalTree::Node::stored_interval = nullptr
protected

The documentation for this class was generated from the following files:
inet::IntervalTree::nil
Node * nil
Definition: IntervalTree.h:157
inet::IntervalTree::Node::stored_interval
const Interval * stored_interval
interval stored in the node
Definition: IntervalTree.h:95
inet::IntervalTree::Node::parent
Node * parent
Definition: IntervalTree.h:110
inet::IntervalTree::Interval::print
virtual void print() const
Definition: IntervalTree.h:65
inet::IntervalTree::Node::left
Node * left
Definition: IntervalTree.h:106
inet::IntervalTree::Node::right
Node * right
Definition: IntervalTree.h:108
inet::IntervalTree::Node::key
simtime_t key
Definition: IntervalTree.h:97
inet::IntervalTree::Node::max_high
simtime_t max_high
Definition: IntervalTree.h:101
inet::IntervalTree::Node::red
bool red
red or black node: if red = false then the node is black
Definition: IntervalTree.h:104
inet::IntervalTree::Node::high
simtime_t high
Definition: IntervalTree.h:99
inet::IntervalTree::root
Node * root
Definition: IntervalTree.h:155