Bintrees方法示例

时间:2015-10-06 04:14:54

标签: python foreach

我确信这是一个微不足道的问题,但现在已经很晚了。我最近开始自学Python,因为我正在学习机器学习课程。我通常使用C ++,所以使用Python,我只想使用包而不是重做我用C ++在Python中完成的东西。话虽这么说,我刚刚安装了bintrees 2.0.1,它有一个AVL树。

我正在尝试进行'inorder'遍历,在每个节点上运行一个类函数。该文档包含此行foreach(f, [order]) -> visit all nodes of tree (0 = ‘inorder’, -1 = ‘preorder’ or +1 = ‘postorder’) and call f(k, v) for each node, O(n)。我一直在寻找使用这个树函数的语法示例,但是,我无法让它工作。我尝试了以下'var'作为AVL树数据结构: foreach(var, 0): method() var.foreach(method(), 0) foreach(var, 0).method() 什么都行不通。也许我累了,但我也找不到网上任何地方的例子。在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

function signature应为var.foreach(method, 0),其中方法的格式为f(k, v),整数(-1,0,+ 1)定义了您对节点的排序方式。

函数f(k, v)应该使用每个节点的密钥(k)和值(v)。

一个例子是:

from bintrees import AVLTree

d = {'a':1, 'b':2, 'c':3}

t = AVLTree(d)

def foo(k, v):
    print k*v

t.foreach(foo)
# a
# bb
# ccc