python - 如何递归地将斐波那契数列插入二叉树

标签 python data-structures fibonacci recursive-datastructures

希望有人能提供帮助,我不是程序员,但一直对探索斐波那契数列及其递归树感兴趣...

我已经创建了一个二叉树类,以及一个关联的 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 - 如何递归地将斐波那契数列插入二叉树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9236565/

相关文章:

python - Github,为什么我的Python代码有^M并且没有新行?

python - Django 手动保存用户配置文件

c++ - 可嵌套 vector 类

algorithm - 给定一个 NxN 矩阵,我怎样才能找到到一个位置 (i,i) 的所有可能路径?

python - 检查二叉树是否对称的技术

java - 不使用循环打印斐波那契数列

python - 这有可能吗?从一个python shell发送命令/对象到另一个?

k-斐波那契算法

c++ - 斐波那契数列通过串行代码

python - 落在网格网格之外的数据点被插值,而网格网格肯定覆盖了这些点