package binaryTree.visitor; import binaryTree.*; import stacks.*; import java.util.Enumeration; public class InorderEnumeration implements IVisitor, Enumeration { public InorderEnumeration(BiTree tree) { tree.execute(this, null); } public boolean hasMoreElements() { return stack.isEmpty() == false; } public Object nextElement() { BiTree current = (BiTree) stack.pop(); current.getRightSubTree().execute(this, null); return current.getRootDat(); } public Object emptyCase(BiTree host, Object input) { return null; } public Object nonEmptyCase(BiTree host, Object input) { stack.push(host); return host.getLeftSubTree().execute(this, input); } LRSStack stack = new LRSStack(); }