Я читал псевдокод алгоритма поиска по глубине ниже . Согласно псевдокоду, я понимаю, как определена глобальная переменная в пределах DFS(G)
, но мне трудно понять, как возможно, что глобальная переменная в пределах DFS(G)
не передается в рекурсивный метод DFS-visit(G, u)
, но time
увеличивается с помощью рекурсивного метода. Я пытался делать писать код вот так:Проблема с пониманием того, как глобальная переменная передается в алгоритме первого поиска глубины псевдокод
class Algo{
...
public void dfs(Graph g){
....
long time = 0;
// for-loop
dfs_visit(g , u);
}
public void dfs_visit(Graph G, Vertex u){
long time = time + 1;
.....
}
}
И это порождает ошибку компиляции в dfs-visit(G, u)
:
error: variable time might not have been initialized long time = time + 1;
Я ощущаю, что я имею в виду, это неправильно, но я просто не понимаю, как time
может быть добавлен в dfs-vist
метод без передачи в качестве аргумента. Пожалуйста, помогите мне исправить мою логику.
в Java, имена классов в 'UpperCamelCase' и имена методов в' lowerCamelCase' вы его назад и делает людей, которые могли бы помочь вам выколоть им глаза! –
ОК. Извини за это. Я отредактирую этот файл – mynameisJEFF
, прежде чем вы попытаетесь написать DFS в java, я бы предложил сначала познакомиться с синтаксисом языка. В настоящее время вы застреваете в вопросах компиляции, забываете о сложной логике. – Pranalee