Алгоритм Ли является одним из возможных решений для задач маршрутизации лабиринта. Он всегда дает оптимальное решение, если оно существует, но оно медленный и требует большой памяти для плотной компоновки.
### Понимание того, как это работает
Алгоритм представляет собой алгоритм на основе `breadth-first` который использует `queues` для хранения шагов. Он обычно использует следующие шаги:
1. Выберите начальную точку и добавьте ее в очередь.
2. Добавьте действительные соседние ячейки в очередь.
3. Удалите позицию, в которой вы находитесь, и переходите к следующему элементу.
4. Повторяйте шаги 2 и 3, пока очередь не будет пустой.
### Реализация
C ++ имеет очередь, уже реализованную в библиотеке `<queue>` , но если вы используете что-то еще, вы можете реализовать ваша собственная версия очереди.