3import java.util.Iterator;
20 implements Iterable<BinaryTree<T> > {
28 s+=node.
getData().toString()+
",";
30 return s.substring(0,s.length()-1);
36 implements Iterator<BinaryTree<T> > {
48 @Override
public void remove() {
49 throw new UnsupportedOperationException();
68 extends Traversal implements Iterable<BinaryTree<T> > {
70 @Override
public Iterator<BinaryTree<T> >
iterator() {
90 private void descendLeft() {
109 extends Traversal implements Iterable<BinaryTree<T> >{
111 @Override
public Iterator<BinaryTree<T> >
iterator() {
127 final static int LEFT=0;
128 final static int RIGHT=1;
129 final static int OUTPUT=2;
156 private void descendLeft() {
165 assert(stack_.is_empty()==state_.
is_empty());
166 return super.hasNext();
171 while ((state=state_.
pop())!=OUTPUT) {
195 extends Traversal implements Iterable<BinaryTree<T> > {
197 @Override
public Iterator<BinaryTree<T> >
iterator() {
223 @Override
public void remove() {
224 throw new UnsupportedOperationException();
237 extends Traversal implements Iterable<BinaryTree<T> > {
239 @Override
public Iterator<BinaryTree<T> >
iterator() {
inorder iterator for BinaryTree
helper: generates InorderIterator
Iterator< BinaryTree< T > > iterator()
level-order iterator for BinaryTree
helper: generates LevelorderIterator
Iterator< BinaryTree< T > > iterator()
postorder iterator for BinaryTree
helper: generates PostorderIterator
Iterator< BinaryTree< T > > iterator()
preorder iterator for BinaryTree
helper: generates PreorderIterator
Iterator< BinaryTree< T > > iterator()
base class for stack-based pre-/in-/postorder traversal
Base class for traversal.
Provide traversals of binary trees.
Postorder postorder(BinaryTree< T > tree)
return instance of generator
Preorder preorder(BinaryTree< T > tree)
return instance of generator
Inorder inorder(BinaryTree< T > tree)
return instance of generator
Levelorder levelorder(BinaryTree< T > tree)
return instance of generator
BinaryTree< T > getLeft()
get left child or null
BinaryTree< T > getRight()
get right child or null)
Implementation of AbstractQueue as a (dynamically resized) circular buffer based on array.
void enqueue(T x)
Enqueue element at end of queue.
boolean is_empty()
Is queue empty?
T dequeue()
Remove front element from queue.
Implementation of a stack based on aud.Vector.
void push(T x)
Push x onto stack.
boolean is_empty()
Is stack empty?
T pop()
Pop element from stack.