我正在寻找一种方法来计算这个人在特定世代中的后代人数,但是不知道如何用scala来做这件事。
我有一个名为“Person”的类,并且有一个包含子项的Vector [Person]。家谱是这样的:
X:Harald
|----X:Mike
|------X:Doe
|------X:Evelyn
|------X:Emilia
|--------X:Mark
|----------X:Rafael
|----X:Don
|------X:Henry
|------X:Milla
class Person(val name: String, val children: Vector[Person]) {
// number of all Descendants
def count(list:Vector[Person]):Int={
var s= 0
for(child <- list)
{
s += 1
s += count(child.children)
}
s
}
// Returns the number of descendants the person has in a particular generation.
def numberOfDescendantsAt(generation: Int): Int = {
var descendants = 0
...
descendants
}
}
答案 0 :(得分:0)
你已经完成了count
中完成的艰苦工作 - 你只需要跟踪它自己调用的次数,并且只有当你处于正确的水平时才增加计数。 / p>