Basic data structures: stacks, queues, arrays, and lists.
Basic algorithms: sorting and searching.
Binary trees.
Brute-force search.
Backtracking search.
Generating all permutations or combinations of a set.
Recursion.
Dynamic programming.
Graphs and their algorithms, including breadth-first search,
depth-first search, minimum spanning trees, shortest paths, topological
sort, and transitive closure.
Basic parsing techniques such as recursive descent, operator precedence, or infix-to-postfix
conversion.
Useful Java Classes
String, StringBuffer classes from java.lang.
The wrapper classes Boolean, Character, Double, and Integer.