【发布时间】:2014-12-14 07:33:14
【问题描述】:
在传递函数以减少冗余的同时,我如何能够创建常见的树操作,例如插入和搜索。例如,当传入的值大于当前节点时,递归函数在左分支上调用自身。如果我能够传入诸如插入和搜索之类的函数,我就能够排除很多遍历。我看到的主要问题是这两个函数都有不同的基本情况。 python中的示例解决方案将不胜感激。
def insert(n, node = root):
if node == None:
node.data = n
node.left, node.right, node.middle = None
elif node.data == n:
insert(node.middle)
elif node.data < n:
insert(right)
else:
insert(left)
def search(n, node = root):
if node == None:
return false
elif node.data == n:
return true
elif node.data < n:
search(right)
else:
search(left)
【问题讨论】:
-
你自己写过代码吗?
-
如果您编辑您的帖子并使用代码格式化选项将其粘贴在那里,它会更具可读性;)
-
它不允许我编辑评论,看起来我已经放入了代码格式化程序,但由于某种原因没有使用。
-
我的意思是你应该编辑你上面的实际帖子(你原来的问题)并在那里输入代码。您可以在那里格式化代码,使其看起来不错。按“编辑”按钮(在“分享”和“标记”之间)
-
我修复了我的帖子。如果您有任何想法,请告诉我如何排除最后两个案例。
标签: python recursion functional-programming higher-order-functions tree-traversal