Class Node.PostOrderIterator

  • All Implemented Interfaces:
    java.util.Iterator<Node>
    Enclosing class:
    Node

    public static class Node.PostOrderIterator
    extends java.lang.Object
    implements java.util.Iterator<Node>
    Performs a post-order (or leaves-first) node traversal starting with a given node.
    See Also:
    Post-order traversal
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.Stack<java.lang.Integer> cursorStack  
      private boolean hasNext  
      private java.util.Stack<java.util.List<Node>> nodesStack  
      private Node root  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void fillStackToLeaf​(Node node)  
      boolean hasNext()  
      Node next()  
      private Node nextFromLevel()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.util.Iterator

        forEachRemaining, remove
    • Field Detail

      • nodesStack

        private final java.util.Stack<java.util.List<Node>> nodesStack
      • cursorStack

        private final java.util.Stack<java.lang.Integer> cursorStack
      • root

        private final Node root
      • hasNext

        private boolean hasNext
    • Constructor Detail

      • PostOrderIterator

        public PostOrderIterator​(Node root)
    • Method Detail

      • fillStackToLeaf

        private void fillStackToLeaf​(Node node)
      • hasNext

        public boolean hasNext()
        Specified by:
        hasNext in interface java.util.Iterator<Node>
      • next

        public Node next()
        Specified by:
        next in interface java.util.Iterator<Node>
      • nextFromLevel

        private Node nextFromLevel()