Skip to main content
`Ctrl`+`K`

# skbio.tree.TreeNode.pre_and_postorder

TreeNode.pre_and_postorder(include_self=True)

  Perform traversal over tree, visiting nodes before and after.

  Parameters:
    include_self bool, optional

      Include the initial node if True (default).

  Yields:
    TreeNode

      Visited node.

  See also

  `traverse`
  `postorder`
  `preorder`
  `levelorder`

  Notes

  Pre- and post-order traversal visits each node before and after traversing all children of the node. Therefore, each internal node (and root) is visited twice. It is a depth-first search (DFS). The overall direction of traversal is from root to tips then back to root.

  Examples

      >>> from skbio import TreeNode
      >>> tree = TreeNode.read(["((a,b)c,(d,e)f)g;"])
      >>> print(tree.ascii_art())
                          /-a
                /c-------|
               |          \-b
      -g-------|
               |          /-d
                \f-------|
                          \-e

      >>> for node in tree.pre_and_postorder():
      ...     print(node.name)
      g
      c
      a
      b
      c
      f
      d
      e
      f
      g