1: /** Makes a clone of this node and its subtrees.
2: @author Frank M. Carrano, Timothy M. Henry
3: @version 5.0
4: @return The clone of the subtree rooted at this node. */
5: public Object clone()
6: {
7: BinaryNode<T> theCopy = null;
8: try
9: {
10: @SuppressWarnings("unchecked")
11: BinaryNode<T> temp = (BinaryNode<T>)super.clone();
12: theCopy = temp;
13: }
14: catch (CloneNotSupportedException e)
15: {
16: throw new Error("BinaryNode cannot clone: " + e.toString());
17: }
19: theCopy.data = (T)data.clone();
21: if (left != null)
22: theCopy.left = (BinaryNode<T>)left.clone();
24: if (right != null)
25: theCopy.right = (BinaryNode<T>)right.clone();
27: return theCopy;
28: } // end clone