Class: Djikstra::Node
- Inherits:
-
Object
- Object
- Djikstra::Node
- Defined in:
- lib/djikstra/node.rb
Instance Attribute Summary collapse
-
#distance ⇒ Object
Returns the value of attribute distance.
-
#name ⇒ Object
Returns the value of attribute name.
-
#neighbors ⇒ Object
Returns the value of attribute neighbors.
-
#previous_node ⇒ Object
Returns the value of attribute previous_node.
Instance Method Summary collapse
- #>(number) ⇒ Object
- #distance_to(node) ⇒ Object
- #infinite? ⇒ Boolean
-
#initialize(name) ⇒ Node
constructor
A new instance of Node.
- #inspect ⇒ Object (also: #to_s)
- #neighbor_of(node, weight) ⇒ Object
- #reset ⇒ Object
Constructor Details
#initialize(name) ⇒ Node
Returns a new instance of Node.
5 6 7 8 9 10 |
# File 'lib/djikstra/node.rb', line 5 def initialize(name) @name = name @neighbors = [] @weights = {} reset end |
Instance Attribute Details
#distance ⇒ Object
Returns the value of attribute distance.
3 4 5 |
# File 'lib/djikstra/node.rb', line 3 def distance @distance end |
#name ⇒ Object
Returns the value of attribute name.
3 4 5 |
# File 'lib/djikstra/node.rb', line 3 def name @name end |
#neighbors ⇒ Object
Returns the value of attribute neighbors.
3 4 5 |
# File 'lib/djikstra/node.rb', line 3 def neighbors @neighbors end |
#previous_node ⇒ Object
Returns the value of attribute previous_node.
3 4 5 |
# File 'lib/djikstra/node.rb', line 3 def previous_node @previous_node end |
Instance Method Details
#>(number) ⇒ Object
30 31 32 33 34 35 |
# File 'lib/djikstra/node.rb', line 30 def >(number) return true if infinite? return false if number == :infinity distance > number end |
#distance_to(node) ⇒ Object
22 23 24 |
# File 'lib/djikstra/node.rb', line 22 def distance_to(node) @weights[node.name] end |
#infinite? ⇒ Boolean
26 27 28 |
# File 'lib/djikstra/node.rb', line 26 def infinite? @distance == :infinity end |
#inspect ⇒ Object Also known as: to_s
37 38 39 |
# File 'lib/djikstra/node.rb', line 37 def inspect %Q(#<Djikstra::Node name="#{name}" distance=#{distance}>) end |
#neighbor_of(node, weight) ⇒ Object
17 18 19 20 |
# File 'lib/djikstra/node.rb', line 17 def neighbor_of(node, weight) @neighbors.push node @weights[node.name] = weight end |
#reset ⇒ Object
12 13 14 15 |
# File 'lib/djikstra/node.rb', line 12 def reset @distance = :infinity @previous_node = nil end |