2011-08-28 21 views
7

Jestem nowym programistą Ruby. kiedy byłem w C++ mogłem implementować struktury danych za pomocą wskaźnika, ale teraz w Ruby nie wiem jak mogę zaimplementować te struktury danych (na przykład drzewo). Czy ktoś może mi pomóc (na przykład przedstawić mi dobre referencje lub zrobić dobry przykład). Specjalne podziękowania.Drzewo implementacji i inna struktura danych z rubinem

+0

Czy chcesz skojarzyć obiekty ActiveRecord lub czy tylko pytanie jest zorientowane na język Ruby? – apneadiving

+0

Przepraszam, nie rozumiem jakiegoś wyrażenia w twoim komentarzu, jak ActiveRecoed. czy możesz wyjaśnić jaśniej? –

+0

ActiveRecord to Rails 'Orm – apneadiving

Odpowiedz

10

Ruby nie ma ani nie potrzebuje wskaźników, ponieważ większość rzeczy jest po prostu przekazywana przez odniesienie.

> a = "hello" 
> b = a 
> a.object_id == b.object_id 
=> true 

w najprostszej postaci węzeł drzewa może być tylko struct, z rodzicem i lewy i prawy rodzeństwo:

> Node = Struct.new(:parent, :left, :right) 
> root = Node.new 
> n1 = Node.new(root, "hello", "world") 
> root.left = n1 
... 

> root.left.left 
=> "hello" 
> root.left.right 
=> "world" 

Pełniejsze wdrożeń można spojrzeć na przykład:

RubyTree:
http://rubytree.rubyforge.org/rdoc/

SimpleTree:
https://github.com/ealdent/simple-tree/blob/master/lib/simple_tree.rb