【发布时间】:2016-12-12 11:57:01
【问题描述】:
我被一个字典格式的给定家谱的递归函数困住了(键是父母,值是孩子)。
例如family_tree = {"Adam": ["Michael", "Clara", "Daniel"], "Clara": [], "Daniel": ["Elizabeth", "Hans"], etc.}
本例中的亚当有 3 个孩子,其中之一是克拉拉。她没有孩子,等等等等。非常简单。
现在,对于递归函数。
- 编写一个函数 depth(person),返回人的家谱的深度。
如果一个人没有孩子,那么他的家谱的深度是 1。如果他有孩子,但没有孙子,深度是 2。如果他有孙子,但没有孙子,深度是3. 以此类推。
这不应该工作吗?
def children(person):
return family_tree[person]
def depth(person):
if not children(person):
return 1
for child in children(person):
a = depth(child)
if a!= None:
return a + 1
谢谢! :)
【问题讨论】:
-
您能否展示解决此问题的任何努力,以说明您需要帮助的地方?
-
哦,我一般需要递归方面的帮助。我不知道如何解决这个问题。
-
做了第二个!更新了问题。 :)
-
请编辑发布的代码,使其可读(换行和缩进问题)
-
深度不依赖于孩子的数量,正如您的代码所暗示的那样。
标签: function python-3.x dictionary recursion