Witam mam następujący problem z kodem:
public int FuncHeu(int id, string doc)
{
foreach (var d in Graf.Where(d => id == d.Id))
{
if (d.Stan == doc)
return 0;
foreach (var a in Graf.Where(a => a.Parent == d))
{
if (a.Stan == doc)
return 1;
foreach (var b in Graf.Where(b => b.Parent == a))
{
if (b.Stan == doc)
return 2;
foreach (var c in Graf.Where(c => c.Parent == b))
{
if (c.Stan == doc)
return 3;
}
}
}
}
return Graf.Count();
}
Kod działa idealnie dla drzewa o głębokości 4, natomiast sypie się kiedy drzewo jest głębsze z oczywistych względów.
Moje pytanie jest następujące w jaki sposób mogę przerobić tą funkcję, aby tworzyła[?] tyle pętli foreach ile jest wierzchołków w grafie? :O. Chciałbym, aby mój program był bardziej uniwersalny. Z góry dziękuję.