class PairingHeap::PairingHeap::Node

Attributes

elem[RW]
next_sibling[RW]
parent[RW]
prev_sibling[RW]
priority[RW]
subheaps[RW]

Public Class Methods

new(elem, priority) click to toggle source
# File lib/pairing_heap.rb, line 50
def initialize(elem, priority)
  @elem = elem
  @priority = priority
  @subheaps = nil
  @parent = nil
  @prev_sibling = nil
  @next_sibling = nil
end

Public Instance Methods

remove_from_parents_list!() click to toggle source
# File lib/pairing_heap.rb, line 59
def remove_from_parents_list!
  if prev_sibling
    prev_sibling.next_sibling = next_sibling
    next_sibling.prev_sibling = prev_sibling if next_sibling
  else # parent.subheaps must equal self
    parent.subheaps = next_sibling
    next_sibling.prev_sibling = nil if next_sibling
  end
  self.prev_sibling = nil
  self.next_sibling = nil
end