docs: def traverse_postorder(self, leaves=True, internal=True):
          '''Perform a postorder traversal starting at this ``Node`` object
  
          Args:
              ``leaves`` (``bool``): ``True`` to include leaves, otherwise ``False``
  
              ``internal`` (``bool``): ``True`` to include internal nodes, otherwise ``False``
          '''
          s1 = deque(); s2 = deque(); s1.append(self)
          while len(s1) != 0:
              n = s1.pop(); s2.append(n); s1.extend(n.children)
          while len(s2) != 0:
              n = s2.pop()
              if (leaves and n.is_leaf()) or (internal and not n.is_leaf()):
                  yield n