001 package brs.visitor; 002 003 import brs.*; 004 005 /** 006 * Print all the numbers in a tree in in-order, line by line 007 * @author Mathias Ricken - Copyright 2008 - All rights reserved. 008 */ 009 public class InOrderPrint<T> implements IVisitor<T,Void,Void> { 010 public Void emptyCase(BiTree<T> host, Void... nu) { 011 return null; 012 } 013 014 public Void nonEmptyCase(BiTree<T> host, Void... nu) { 015 host.getLeftSubTree().execute(this); 016 System.err.println(host.getRootDat()); 017 host.getRightSubTree().execute(this); 018 return null; 019 } 020 021 public static void main(String[] args) { 022 BiTree<Integer> bt = new BiTree<Integer>(); 023 InOrderPrint<Integer> inOrderPrint = new InOrderPrint<Integer>(); 024 025 System.out.println(bt); 026 bt.execute(inOrderPrint); 027 System.out.println("=============================="); 028 029 bt.insertRoot(5); 030 System.out.println(bt); 031 bt.execute(inOrderPrint); 032 System.out.println("=============================="); 033 034 bt.getLeftSubTree().insertRoot(-2); 035 System.out.println(bt); 036 bt.execute(inOrderPrint); 037 System.out.println("=============================="); 038 039 bt.getRightSubTree().insertRoot(10); 040 System.out.println(bt); 041 bt.execute(inOrderPrint); 042 System.out.println("=============================="); 043 044 bt.getRightSubTree().getLeftSubTree().insertRoot(-9); 045 System.out.println(bt); 046 bt.execute(inOrderPrint); 047 } 048 }