0
я начал кодировать со стеком как:Глубина Первый поиск без стека
void Foo(TreeNode root)
{
Stack nodes = new Stack();
nodes.Push(root);
while (nodes.Count > 0)
{
TreeNode node = (TreeNode) nodes.Pop();
Console.WriteLine(node.Text);
for (int i = node.Nodes.Count - 1; i >= 0; i--)
nodes.Push(node.Nodes[i]);
}
}
Но, без стека я не знаю, что я должен делать.
Я пробовал это. Правильно ли это? Может ли кто-нибудь мне предложить.
void Foo(TreeNode root)
{
if(root == null) return;
System.out.print(root.Value + "\t");
root.state = State.Visited;
//for every child
for(Node n: root.getChild())
{
//if childs state is not visited then recurse
if(n.state == State.Unvisited)
{
dfs(n);
}
}
}
Что конкретный вопрос вы с? См. Http://stackoverflow.com/help/how-to-ask и http://stackoverflow.com/help/mcve для получения помощи. – jordanhill123
И, пожалуйста, напомните старику, что означает «DFS» в этом контексте? –
Да, и вы только что разместили код Java ... –