package brs; /** * Computes a String representation of the binary tree host so that it can be * printed vertically, given a leftmost leading string for the two subtrees. * Called by ToString. * Should be implemented as an anonymous inner class in the call by ToString. * @author Dung X. Nguyen - Copyright 2001 - All rights reserved. */ public class ToStringHelp implements IVisitor { public final static ToStringHelp Singleton = new ToStringHelp (); private ToStringHelp () { } /** * Returns "|_[]" to denote an empty tree subtree. * @param host an empty binary (sub)tree. * @param nu not used. * @return String */ public Object emptyCase(BiTree host, Object nu) { return "|_ []"; } /** * Computes a String representation of the binary tree host so that it * can be printed vertically. * There is no '\n' at the end of the String. * @param host a non-empty binary (sub)tree. * @param leftLead appropriate leftmost leading String to help compute the * String representations of the left and right subtrees. * @return String */ public Object nonEmptyCase(BiTree host, Object leftLead) { String ls = (String)host.getLeftSubTree().execute(this, leftLead + "| "); String rs = (String)host.getRightSubTree().execute(this, leftLead + " "); return ("|_ " + host.getRootDat()+ "\n" + leftLead + ls + "\n" + leftLead + rs); } }