python - 二叉树方法示例

标签 python foreach

我确信这是一个微不足道的问题,但已经晚了。由于我正在学习机器学习类(class),我最近开始自学 Python。我通常使用 C++,所以对于 Python,我只想使用包,而不是在 Python 中重做我在 C++ 中所做的事情。话虽这么说,我刚刚安装了 bintrees 2.0.1,它有一个 AVL 树。

我正在尝试执行“中序”遍历,在每个节点上运行类函数。文档中有此行 foreach(f, [order]) -> 访问树的所有节点(0 = 'inorder', -1 = 'preorder' 或 +1 = 'postorder')并调用 f(k, v) 对于每个节点,O(n)。我已经仔细查找了使用此树函数的语法示例,但是,我无法让它工作。我已经尝试使用“var”作为 AVL 树数据结构进行以下操作: foreach(var, 0): 方法() var.foreach(method(), 0) foreach(var, 0).method() 什么都不起作用。也许我累了,但我也无法在网络上的任何地方找到示例。预先感谢您的帮助。

最佳答案

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

关于python - 二叉树方法示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32961615/

相关文章:

python - 如何从键列表和相同值生成字典列表

python - bash:根据安装的 python 版本执行不同的操作

Javascript array.forEach 范围?

php - IE7 中 foreach 循环中的文本大小增加

javascript - 如何遍历从 getElementsByTagName 返回的所有元素

python - 将给定向量 (B) 的每个值舍入为 A 中最接近的值

python - 使用 TensorFlow 进行图像分割

python - 如何在 django admin 中创建一个自动填充和自动递增的字段

c# - ASP.NET C# 在循环内打开多个模式弹出窗口,一个接一个

JavaScript forEach() 方法混淆