Class binaryTree.ANode


abstract class ANode
extends Object
Represents the state of the parent binary tree structure. Union pattern

Author:
Dung X. Nguyen - Copyright 1999 - All rights reserved.

Method Index

 o execute (IVisitor, Object, BiTree)
Calls the appropriate visitor's method to execute the visiting algorithm
 o getLeftSubTree (BiTree)
Gets the left subtree of the parent tree
 o getRightSubTree (BiTree)
Gets the right subtree of the parent tree
 o getRootDat (BiTree)
Gets the root data of the parent tree if it exists
 o insertRoot (Object, BiTree)
Inserts a root element to the parent tree
 o remOurParent (BiTree, BiTree)
Removes and return the root element of the grandparent of this node,
 o remParent (BiTree, BiTree, BiTree)
Removes and return the root element of the grandparent of this node,
 o remRoot (BiTree)
Removes and returns the root element from the parent tree
 o setLeftSubTree (BiTree, BiTree)
Sets the left subtree of the parent tree to a given tree
 o setRightSubTree (BiTree, BiTree)
Sets the right subtree of the parent tree to a given tree
 o setRootDat (Object, BiTree)
Sets the root element of the parent tree to a given data object

Methods

 o getRootDat
abstract Object getRootDat(BiTree parent)
Gets the root data of the parent tree if it exists.

Parameters:
parent - the context of the state.
Returns:
the data element of this node if it exists.
Throws: NoSuchElementException
if the parent is empty.
 o setRootDat
abstract void setRootDat(Object dat, BiTree parent)
Sets the root element of the parent tree to a given data object.

Parameters:
dat -
parent - the context of this state.
Throws: NoSuchElementException
if the parent is empty.
 o getLeftSubTree
abstract BiTree getLeftSubTree(BiTree parent)
Gets the left subtree of the parent tree.

Parameters:
parent - the context of this state.
Returns:
the left subtree of this node if it exists.
Throws: NoSuchElementException
if the parent is empty.
 o getRightSubTree
abstract BiTree getRightSubTree(BiTree parent)
Gets the right subtree of the parent tree.

Parameters:
parent - the context of this state.
Returns:
the right subtree of this node if it exists.
Throws: NoSuchElementException
if the parent is empty.
 o setLeftSubTree
abstract void setLeftSubTree(BiTree biTree, BiTree parent)
Sets the left subtree of the parent tree to a given tree. Allows for growing the parent tree.

Parameters:
biTree - != null.
parent - the context of this state.
Throws: NoSuchElementException
if the parent is empty.
 o setRightSubTree
abstract void setRightSubTree(BiTree biTree, BiTree parent)
Sets the right subtree of the parent tree to a given tree. Allows for growing the parent tree.

Parameters:
biTree - != null.
parent - the context of this state.
Throws: NoSuchElementException
if the parent is empty.
 o insertRoot
abstract void insertRoot(Object dat, BiTree parent)
Inserts a root element to the parent tree. Allows for state change from empty to non-empty.

Parameters:
dat -
parent - the context of this state.
Throws: IllegaStateException
if the parent is not empty.
 o remRoot
abstract Object remRoot(BiTree parent)
Removes and returns the root element from the parent tree. Allows for state change from non-empty to empty.

Parameters:
dat -
parent - the context of this state.
Throws: IllegaStateException
if the parent has more than one element.
 o remParent
abstract Object remParent(BiTree aunt, BiTree grandPo, BiTree mom)
Removes and return the root element of the grandparent of this node, asking the sibbling of the parent tree to do it if necessary.

Parameters:
aunt - the sibbling of the parent of this node.
grandPo - the grand parent of this node.
mom - the parent (i.e. context) of this node.
Returns:
the root data of the grandparent of this node.
 o remOurParent
abstract Object remOurParent(BiTree grandParent, BiTree parent)
Removes and return the root element of the grandparent of this node, knowing that the sibbling of the parent tree is empty.

Parameters:
grandParent - the grand parent of this BiTree.
parent - the context of this node.
Returns:
the root data of the grandparent of this node.
 o execute
abstract Object execute(IVisitor algo, Object input, BiTree parent)
Calls the appropriate visitor's method to execute the visiting algorithm.

Parameters:
algo - the visiting algorithm
input - the input the algorithm needs.
parent - the context of this node.
Returns:
the output for the algorithm.