我有以下代码:
class Point
attr_reader :left, :right, :straigth, :next_point, :label
def initialize(left,right,straigth,next_point,label)
@straigth = straigth
@right = right
@left = left
@next_point = next_point
@label = label
end
end
我正在尝试使用上述数据结构实现以下模型,使用更优雅的解决方案,而不仅仅是为每个点创建一个新变量,然后将它们链接在一起。 (例如,不是这样)
a = Point.new(Point.new .... )
b = Point.new( ... , a, etc ...)
我首先想到的是在数组中使用数组 [a,b,c,d,[e,f,g,h,...]并将A与E和F匹配,然后将B与G和H匹配,但是当我们达到第三级时,共享点。 E有N但F也有N.M也连接到L和U.
将此硬编码为变量用于模拟目的的最优雅方法是什么?