我创建了一个非常简单的节点类,其中包含一个名称和一个节点数组。我还创建了一个带有 next 方法的迭代器类,该方法帮助我在每个节点和子节点上进行迭代。我需要编写下一个方法,但我不知道最好的方法是什么。
class Node
def initialize(name, nodes
@name = name
@nodes = nodes
end
end
class Iterator
def initialize(node)
@node = node
end
def next
???
end
end
例子:
z = Node.new("z", [])
b = Node.new("b", [z])
c = Node.new("c", [])
parent = Node.new("a", [b, c])
iterator = Iterator.new(parent)
str = ''
next = iterator.next
while next do
str += next.name
next = iterator.next
end
str 应该等于“abzc”
有人可以帮我吗?