Function 递归函数&;家谱
我一直使用字典格式的给定家谱树的递归函数(键是父项,值是子项) 每个示例Function 递归函数&;家谱,function,python-3.x,dictionary,recursion,Function,Python 3.x,Dictionary,Recursion,我一直使用字典格式的给定家谱树的递归函数(键是父项,值是子项) 每个示例family_tree={“Adam”:[“Michael”、“Clara”、“Daniel”]、“Clara”:[]、“Daniel”:[“Elizabeth”、“Hans”]等] 本例中的亚当有3个孩子,其中一个是克拉拉。她没有孩子,等等,等等,非常坦率 现在,对于递归函数 编写一个函数depth(person),返回该人的家谱的深度 如果一个人没有孩子,她的家谱深度是1。如果他有孩子,但没有孙子,深度为2。如果他有孙子
family_tree={“Adam”:[“Michael”、“Clara”、“Daniel”]、“Clara”:[]、“Daniel”:[“Elizabeth”、“Hans”]等]
本例中的亚当有3个孩子,其中一个是克拉拉。她没有孩子,等等,等等,非常坦率
现在,对于递归函数
def儿童(人):
返回家庭树[个人]
def深度(人):
如果不是儿童(人):
返回1
儿童中的儿童(人):
a=深度(子级)
如果是无:
返回+1
谢谢!:) 计算深度的逻辑是:
if a person has no children
depth is 1
else
depth is 1 + (maximum depth of person's children)
您的问题是最内在的条件:
- 您应该始终返回一个整数结果无不是一个好选择
- 您需要返回1加上所有子项的最大深度。当前代码返回第一个子级的深度加1
在你的内心循环中要有耐心。如果有孩子,只需记录你迄今为止发现的最大深度。完成循环后,添加1并返回该值。您能否演示解决此问题的任何努力,以了解您在哪里需要帮助?哦,我通常需要递归方面的帮助。我不知道该怎么做。第二次做了!更新了问题:)请编辑张贴的代码,使其可读(换行和缩进问题)深度不依赖于子代码的数量,正如您的代码所建议的。