ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – 如何递归地将Fibonacci序列插入到二叉树中

2019-06-26 08:45:56  阅读:185  来源: 互联网

标签:python data-structures fibonacci recursive-datastructures


希望有人可以提供帮助,我不是程序员,但一直对探索Fibonacci序列感兴趣,而且它是递归树…

我创建了一个二叉树类,以及一个关联的TreeNode类,并且想要生成由以下创建的递归调用的二叉树:

f(n) = f(n-1) + f(n-2) for a given value of n

我想将它添加为我的二叉树类的InsertFibonacci方法,替换标准的Insert方法:

def insertNode(self, root, inputData):
    if root == None:
        return self.addNode(inputData)
    else:
        if inputData <= root.nodeData:
            root.left = self.insertNode(root.left, inputData)
        else:
            root.right = self.insertNode(root.right, inputData)
        return root

我会在Fib功能中添加一些装饰器吗?

# Fib function
def f(n):

    def helper(n):
        left = f(n-1)
        right = f(n-2)
        return left,right

    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        left, right = helper(n)
        return left + right

解决方法:

这是我能想到的最简单的解决方案:

class FibTree(object):
    def __init__(self, n):
        self.n = n
        if n < 2:
            self.value = n
        else:
            self.left = FibTree(n - 1)
            self.right = FibTree(n - 2)
            self.value = self.left.value + self.right.value

标签:python,data-structures,fibonacci,recursive-datastructures
来源: https://codeday.me/bug/20190626/1292023.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有