Class: IntervalSkipList::Node
- Defined in:
- lib/treetop/runtime/interval_skip_list/node.rb
Instance Attribute Summary collapse
-
#endpoint_of ⇒ Object
readonly
Returns the value of attribute endpoint_of.
-
#key ⇒ Object
Returns the value of attribute key.
-
#markers ⇒ Object
readonly
Returns the value of attribute markers.
Attributes inherited from HeadNode
#forward, #forward_markers, #height
Instance Method Summary collapse
- #all_forward_markers ⇒ Object
- #delete(path) ⇒ Object
-
#initialize(key, height, path) ⇒ Node
constructor
A new instance of Node.
- #propagate_length_change(length_change) ⇒ Object
Methods inherited from HeadNode
Constructor Details
#initialize(key, height, path) ⇒ Node
Returns a new instance of Node.
6 7 8 9 10 11 12 13 |
# File 'lib/treetop/runtime/interval_skip_list/node.rb', line 6 def initialize(key, height, path) super(height) @key = key @markers = [] @endpoint_of = [] update_forward_pointers(path) promote_markers(path) end |
Instance Attribute Details
#endpoint_of ⇒ Object (readonly)
Returns the value of attribute endpoint_of.
4 5 6 |
# File 'lib/treetop/runtime/interval_skip_list/node.rb', line 4 def endpoint_of @endpoint_of end |
#key ⇒ Object
Returns the value of attribute key.
3 4 5 |
# File 'lib/treetop/runtime/interval_skip_list/node.rb', line 3 def key @key end |
#markers ⇒ Object (readonly)
Returns the value of attribute markers.
4 5 6 |
# File 'lib/treetop/runtime/interval_skip_list/node.rb', line 4 def markers @markers end |
Instance Method Details
#all_forward_markers ⇒ Object
15 16 17 |
# File 'lib/treetop/runtime/interval_skip_list/node.rb', line 15 def all_forward_markers markers.flatten end |
#delete(path) ⇒ Object
19 20 21 22 23 24 |
# File 'lib/treetop/runtime/interval_skip_list/node.rb', line 19 def delete(path) 0.upto(top_level) do |i| path[i].forward[i] = forward[i] end demote_markers(path) end |
#propagate_length_change(length_change) ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/treetop/runtime/interval_skip_list/node.rb', line 26 def propagate_length_change(length_change) cur_node = self while cur_node do cur_node.key += length_change cur_node = cur_node.forward[0] end end |