Я не понимаю, почему вы захотите использовать дерево.
Если вы решаете 8-головоломку за как можно меньшее количество ходов, то вы действительно находите самый короткийпуть от текущей конфигурации к «решенной» конфигурации в графе, где вершины являются конфигурациями, а ребра являются перемещениями.
Кратчайший путь можно найти, например, с помощью поиска в ширину.
Я думаю, что этот код объясняет это довольно хорошо: http://www.dreamincode.net/code/snippet1914.htm
(неявный) граф можно мысленно представить в виде дерева, но то, что изображается, больше похоже на поток управления алгоритма.