Class AVLTree

java.lang.Object
edu.ksu.cis.viewer.AVLTree
All Implemented Interfaces:
BSTInterface, Serializable

public final class AVLTree extends Object implements BSTInterface
An immutable AVL tree that can draw itself. An AVL tree is a binary search tree such that if it is nonempty, its children differ in height by at most 1.
Author:
Rod Howell (rhowell@ksu.edu)
See Also:
  • Constructor Details

    • AVLTree

      public AVLTree()
      Constructs an empty AVLTree.
  • Method Details

    • put

      public BSTInterface put(String key) throws NullPointerException
      Returns the AVLTree resulting from the insertion key into this AVLTree. If key is already in this tree, an identical tree is returned.
      Specified by:
      put in interface BSTInterface
      Parameters:
      key - the key to insert
      Returns:
      the resutling tree
      Throws:
      NullPointerException - If key is null
    • remove

      public BSTInterface remove(String key) throws NullPointerException
      Returns the AVLTree resulting from the removal of key from this AVLTree. If key is not in this tree, an identical tree is returned.
      Specified by:
      remove in interface BSTInterface
      Parameters:
      key - the key to remove
      Returns:
      the resulting tree
      Throws:
      NullPointerException - If key is null
    • getDrawing

      public JComponent getDrawing()
      Returns a drawing of this tree.
      Specified by:
      getDrawing in interface BSTInterface
      Returns:
      a drawing of the tree
    • getDrawing

      public JComponent getDrawing(Font fnt)
      Returns a drawing of this tree using the given Font.
      Specified by:
      getDrawing in interface BSTInterface
      Parameters:
      fnt - the font to use
      Returns:
      a drawing of the tree
      Throws:
      NullPointerException - if fnt is null.
    • clone

      public Object clone()
      Because this structure is immutable, this method simply returns this tree.
      Specified by:
      clone in interface BSTInterface
      Overrides:
      clone in class Object
      Returns:
      a clone of the this tree