public boolean insert(DataObject dao) { if (treeObjects.size() == 0) { return insert(dao, null); } else { return insert(dao, treeObjects.get(0)); } } public boolean insert(DataObject dao, DataObject whereToStart) { if (whereToStart == null) { treeObjects.add(dao); return true; } if (dao.getKey() < whereToStart.getKey()) { if (whereToStart.getLeftChild() == null) { whereToStart.setLeftChild(dao); } return insert(dao, whereToStart.getLeftChild()); } else { if (whereToStart.getRightChild() == null) { whereToStart.setRightChild(dao); } return insert(dao, whereToStart.getRightChild()); } }