Welcome At My Blog, Ada Anime Baru! 

Thursday, September 10, 2015

Link List menggunakan Ruby


Bahasa pemograman Ruby memang adalah sebuah bahasa pemograman yang mungkin bisa dibilang jadul atau sudah jarang yang memakai. Namun saya sekarang akan membahas tentang Link List menggunakan bahasa pemograman Ruby.

class Node
  attr_accessor :node, :next

  def self.last(node)
    return node if node.next.nil?
    node = last node.next
  end

  def self.reverse(node)
    return node if node.next.nil?

    head, swap, node.next = node.next, node, nil
    link = head.next

    while link != nil
      head.next = swap
      swap = head
      head = link
      link = link.next
    end

    head.next = swap
    head
  end

  def self.node_list(node, msg = nil)
    msg ||= ""
    return msg[0..-4] if node.nil?
    node_list(node.next, msg << "#{node.node} -> ")
  end

  def initialize(node)
    @node = node
  end
end

node = Node.new(1)
1.upto(99) do |i|
  eval("Node.last(node).next = Node.new(i + 1)")
end

puts Node.node_list node
puts Node.node_list Node.reverse(node)

No comments:

Post a Comment