RosettaCodeData/Task/Doubly-linked-list-Traversal/Ruby/doubly-linked-list-traversal.rb
Ingy döt Net 764da6cbbb CDE
2013-04-10 16:57:12 -07:00

15 lines
384 B
Ruby

class DListNode
def get_tail
# parent class (ListNode) includes Enumerable, so the find method is available to us
self.find {|node| node.succ.nil?}
end
def each_previous(&b)
yield self
self.prev.each_previous(&b) if self.prev
end
end
head = DListNode.from_array([:a, :b, :c])
head.each {|node| p node.value}
head.get_tail.each_previous {|node| p node.value}