Programming Challenges 17-17
Programming Challenges 17-17
8 Backtracking 167
8.1 Backtracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
8.2 Constructing All Subsets . . . . . . . . . . . . . . . . . . . . . . . . . 169
8.3 Constructing All Permutations . . . . . . . . . . . . . . . . . . . . . . 170
8.4 Program Design Example: The Eight-Queens Problem . . . . . . . . 172
8.5 Pruning Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
8.6 Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
8.6.1 Little Bishops . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
8.6.2 15-Puzzle Problem . . . . . . . . . . . . . . . . . . . . . . . . 177
8.6.3 Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
8.6.4 Servicing Stations . . . . . . . . . . . . . . . . . . . . . . . . . 180
8.6.5 Tug of War . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
8.6.6 Garden of Eden . . . . . . . . . . . . . . . . . . . . . . . . . . 182
8.6.7 Color Hash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
8.6.8 Bigger Square Please... . . . . . . . . . . . . . . . . . . . . . . 186
8.7 Hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
8.8 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188