希望有人能帮助,我不是一个程序员,但在探索Fibonacci序列中一直有兴趣,它的递归树...我如何可以递归插入Fibonacci序列为二叉树
我创建二叉树类以及相关的TreeNode类,并且想要生成由以下创建的递归调用的二叉树:
f(n)= f(n-1)+ f(n-2)对于给定的值n
我想将其添加为InsertFibonacci me我的二叉树类的方法,取代标准的插入方法:
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
你的意思是你想要的数据结构来表示递归斐波那契函数调用关系图?那么你不应该使用二进制*搜索*树。 – 2012-02-11 00:14:55
嗨Larsmans, 是的,一个数据结构来表示调用图。调用图不表示接近完全严格的二叉树结构吗? – Alex2134 2012-02-11 00:20:36
是的,但调用图不是一个二进制*搜索*树,这是'insertNode'好像要实现的。 BST是带有排序约束的标记二叉树,斐波那契调用图不显示。 – 2012-02-11 00:24:35