skbio.tree.TreeNode.traverse

TreeNode.traverse(self_before=True, self_after=False, include_self=True)[源代码]

返回子体上的迭代器

状态:从0.4.0开始实验。

这是深度优先遍历。由于树不是二进制的,所以可以进行前序和后序遍历,但是序内遍历将依赖于树中的数据,因此不在这里进行处理。

参数:
  • self_before (bool) -- 如果为True,则在其子节点之前包含每个节点

  • self_after (bool) -- 如果为True,则在每个节点的子节点之后包含该节点

  • include_self (bool) -- 如果为True,则包含初始节点

self_beforeself_after 都是独立的。如果两者都不是 True ,则只返回终端节点。

请注意,如果SELF是TERMINAL,它将只包含一次,即使 self_beforeself_after 两者都是 True

生成器:

TreeNode --已遍历节点。

示例

>>> from skbio import TreeNode
>>> tree = TreeNode.read(["((a,b)c);"])
>>> for node in tree.traverse():
...     print(node.name)
None
c
a
b