2011-08-28 15 views
7

Soy nuevo programador de Ruby. cuando estaba en C++ pude implementar estructuras de datos con puntero, pero ahora en Ruby no sé cómo puedo implementar estas estructuras de datos (por ejemplo, árbol). ¿Alguien puede ayudarme (por ejemplo, presentarme una buena referencia o tomar un buen ejemplo). Agradecimiento especial.Árbol de implementación y otra estructura de datos con ruby ​​

+0

¿Desea asociar objetos ActiveRecord o es solo cuestión de Ruby? – apneadiving

+0

Disculpe, no me refiero a alguna expresión en su comentario como ActiveRecoed. ¿Puedes explicarlo más claramente? –

+0

ActiveRecord es Rails 'Orm – apneadiving

Respuesta

10

Ruby no tiene ni necesita punteros ya que la mayoría de las cosas simplemente se pasan por referencia.

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

En su forma más simple, un nodo de árbol podría ser sólo una estructura, con un padre y un hermano izquierda y derecha:

> 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" 

Para implementaciones más completas que podría mirar por ejemplo:

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

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

Cuestiones relacionadas