Linked List ( Ruby )
LinkedList kavramına gerek java gerekse c# örneklerinde değindik.Her kavramın farklı dillerde nasıl gerçekleştirildiğini göstermek açısından ve diğer diller ile kıyaslanarak pekiştirmek için ruby dili için örnek kod parçacığını ekliyorum.LinkedList hangi dilde olursa olsun mantık aynıdır.Kendisinden önceki ve sonraki nesnenin hangisi olduğu bilgisini tutar.Link ile birbirine bağlıdırlar.Ruby içerisinde linkedlist olayını kullanmak isteyenler için güzel bir örnek..Umarım yararlı olur..
class LinkedList
include Enumerable
def initialize
@first = Node.new nil
@last = Node.new nil
@first.next = @last
@last.prev = @first
@size = 0
end
def addLast(object)
node = Node.new(object)
node.next = @last
node.prev = @last.prev
@last.prev.next = node
@last.prev = node
@size += 1
end
def addFirst(object)
node = Node.new(object)
node.prev = @first
node.next = @first.next
@first.next.prev = node
@first.next = node
@size += 1
end
def last
if @size <= 0
raise "Listede nesne bulunmuyor"
end
return @last.prev.object
end
def first
if @size <= 0
raise "Listede nesne bulunmuyor"
end
return @first.next.object
end
def removeLast
if @size <= 0
raise "Listede nesne bulunmuyor"
end
node = @last.prev
node.prev.next = @last
@last.prev = node.prev
@size -= 1
return node.object
end
def removeFirst
if @size <= 0
raise "Listede nesne bulurnmuy"
end
node = @first.next
node.next.prev = @first
@first.next = node.next
@size -= 1
return node.object
end
def size
return @size
end
def each
node = @first.next
while node != @last
yield node.object
node = node.next
end
end
def reverse_each
node = @last
loop do
yield node.object
node = node.prev
if ! node
break
end
end
end
class Node
attr_reader
bject
attr_reader :prev
attr_reader :next
attr_writer :next
attr_writer :prev
def initialize(object)
@object = object
end
def dump(io)
io.puts "===== #{self} ====="
io.puts "Object: #{@object}"
io.puts "Prev: #{@prev}"
io.puts "Next: #{@next}"
end
end
end
Kolay gelsin..
OĞUZ Kırat
Benzer Yazılar
Etiketler: C++, cod, code, coder, coders, diller, kodlama, Linked List ( Ruby ), LinkedList, program, Program Dilleri, program yazmak, programlama, programlama dilleri, Ruby, Ruby Dili, Ruby eklentileri, Ruby full download, Ruby full indir, Ruby Gorsel Anlatim, Ruby Hatalari, Ruby kodlama, Ruby kodlari, Ruby komutlari, Ruby kurulumu, Ruby Nedir, Ruby özellikleri, Ruby programlari, Ruby Sorunlari, system developers, turk coders, Yazılım, Yazılım Dilleri, Yazılım Geliştiricileri














