1: // @author Frank M. Carrano, Timothy M. Henry
2: // @version 5.0
4: // Adds anEntry to the nonempty subtree rooted at rootNode.
5: private T addEntry(BinaryNode<T> rootNode, T anEntry)
6: {
7: // Assertion: rootNode != null
8: T result = null;
9: int comparison = anEntry.compareTo(rootNode.getData());
11: if (comparison == 0)
12: {
13: result = rootNode.getData();
14: rootNode.setData(anEntry);
15: }
16: else if (comparison < 0)
17: {
18: if (rootNode.hasLeftChild())
19: result = addEntry(rootNode.getLeftChild(), anEntry);
20: else
21: rootNode.setLeftChild(new BinaryNode<>(anEntry));
22: }
23: else
24: {
25: // Assertion: comparison > 0
27: if (rootNode.hasRightChild())
28: result = addEntry(rootNode.getRightChild(), anEntry);
29: else
30: rootNode.setRightChild(new BinaryNode<>(anEntry));
31: } // end if
33: return result;
34: } // end addEntry