【发布时间】:2012-03-03 10:34:49
【问题描述】:
希望有人能提供帮助,我不是程序员,但一直有兴趣探索斐波那契数列及其递归树...
我创建了一个二叉树类,以及一个关联的 TreeNode 类,并希望生成由以下人员创建的递归调用的二叉树:
f(n) = f(n-1) + f(n-2) 对于给定的 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
【问题讨论】:
-
你的意思是你想要一个数据结构来表示递归斐波那契函数的调用图吗?那么你不应该使用二叉 search 树。
-
嗨 Larsmans,是的,一种表示调用图的数据结构。调用图不是代表了一个近乎完整的严格二叉树结构吗?
-
是的,但是调用图不是二叉 search 树,
insertNode似乎实现了这一点。 BST 是带有排序约束的标记二叉树,斐波那契调用图没有显示。 -
对,我明白其中的区别。非常感谢您的澄清。
标签: python data-structures fibonacci recursive-datastructures