Хорошо, я много огляделся по сети, и это просто не нажимает на меня.Глубина Первый алгоритм от начальной точки
У меня есть ArrayList towns = new ArrayList<Town>
с городами, в которых я буду выполнять DFS.
я заполнить этот массив с ~ 8 городов
У меня есть целое число int i
(индекс города в ArrayList, который имеет быть первым в пути)
У меня есть начальное расстояние double dist = 0
У меня есть функция distBetween(Town a, Town b)
, которая делает то, что она говорит.
У меня есть Arraylist route = new ArrayList<Town>()
, который содержит порядок городов, в зависимости от пути, который я принимаю.
Теперь у меня есть основная функция (рекурсивная, согласно онлайн-исследованиям), которая выполняет поиск по глубине.
public static void dfs(){
// what goes here
}
Мне нужно добавить города в массив маршрутов и удалить их в соответствии с алгоритмом поиска первой глубины. Мне также нужно изменить переменную dist
.
Как бы я об этом узнал. Может ли кто-нибудь предоставить мне, может быть, какой-то псевдокод или комментарии, просто объясняющие, что делать. Я не могу использовать другие алгоритмы, которые я нашел в Интернете. Если бы я мог получить объяснение, характерное для моей ситуации, это было бы здорово.
Я могу удалить индекс i
из town
, если это облегчает процедуру поиска.
Каким должен быть ваш код во время/после посещения всех путей? Вы пытаетесь найти путь с минимальным общим расстоянием? – tucuxi
свести к минимуму общее расстояние –