Comparator<Employee> sortFct;
sortFct = (emp1, emp2) -> emp1.getName().compareTo(emp2.getName());
BiFunction<String, Employee, Integer> searchFct;
searchFct = (nm, emp) -> nm.compareTo(emp.getName());
BST<Employee, String> tree;
tree = new BST<>(sortFct, searchFct);
tree.add(new Employee(10, "Kofi"));
tree.add(new Employee(15, "Asha"));
tree.add(new Employee(20, "Riya"));
tree.visitInOrder(elem -> prn(elem));
prn("");
tree.visitPreOrder(elem -> prn(elem));
prn("");
tree.visitPostOrder(elem -> prn(elem));
prn("");
Employee match = tree.search("Riya");
prn("Match for 'Riya': " + match);