General
Hanoi Tower
private static final int NUM_PEGS = 3;
public static void computeTowerHanoi(int numRings){
List<Deque<Integer>> pegs = new ArrayList<>();
for(int i = 0; i < NUM_PEGS; i++){
pegs.add(new LinkedList<Integer>)
}
for(int i = numRings; i > 0 ; i--){
pegs.get(0).push(i);
}
helper(pegs, numRings, 0, 1, 2)
}
public static void helper(List<Deque<Integer>> pegs, int numRings, int pegFrom, int pegTo, int pegUse){
if (numRings > 0){
helper(pegs, numRings - 1, pegFrom, pegUse, pegTo);
pegs.get(pegTo).push(pegs.get(pegFrom).pop());
helper(pegs, numRings - 1, pegUse, pegTo, pegFrom);
}
}n-Queens
Last updated
Was this helpful?