Tree234.java
Created with JBuilder
package t234;

/**
* This is an object-oriented implementation 2-3-4 trees using the state design
* pattern.
* The classic discussion for 2-3-4 trees is outlined in Sedgewick's
* "Algorithms in C++", Addison-Wesley 1992, pp. 215-219.  Other elucidating
* discussions of balanced trees can be found in Stubbs/Webre's
* "Data Structures", and Aho/Hopcroft/Ullman's "Data Structures and Algorithms".
* For the sake of definiteness, we design the tree to store Integer only.
* @since 11/13/01
* @author Dung X. Nguyen, Copyright 2001 - All Rights Reserved.
*/
public class Tree234 {
    /** @SBGen Variable (,,,64)   */
    private ANode234 _rootNode;

    /**
    * Initializes this Tree234 to empty.
    */
    public Tree234() {
        _rootNode = EmptyNode.Singleton;
    }

    /**
    * Initializes this Tree234 to contain exactly one data element, an empty
    * left subtree, and an empty right subtrees.  The subtrees are Tree234.
    
    This constructor is not intrinsically needed.  It exists as a convenience only.
    
* @param n != null. */ public Tree234(Integer n){ _rootNode = new Node2(n); } public final boolean isEmpty() { return _rootNode.isEmpty(this); } /** * Inserts an Integer into this Tree234 without duplication. * @param n != null. */ public final void insert(Integer n) { _rootNode.insert(this,n); } /** * For debugging purpose. * EXERCISE FOR STUDENTS: Write the toString() method instead. * Hint: see the binary tree example. */ public final void draw() { drawAtLevel(0); } /////////////////////////////////////// //Not visible outside of package Tree234(ANode234 root) { _rootNode = root; } Tree234(Tree234 lTree, Integer n, Tree234 rTree) { _rootNode = new Node2 (lTree, n, rTree); } final void drawAtLevel(int level) { _rootNode.drawAtLevel (level); } final void changeRoot(ANode234 newRoot) { _rootNode = newRoot; } final ANode234 root() { return _rootNode; } final void insertHelper(Tree234 parent, Integer n) { _rootNode.insertHelper (parent, this, n); } final void attach (Tree234 lTree, Integer n, Tree234 rTree) { _rootNode.attach (this, lTree, n, rTree); } }
Tree234.java
Created with JBuilder