Mam taką strutkurę drzewa:
1
-2
-3
---4
---5
-6
---7
(2,3,6 to potomkowie 1) (4,5 to potomkowie 3) , 7 to potomek 6
Napisałem funkcję, którą chcę znajdować dowolny węzeł w drzewie po Id, przy czym każdy węzeł może mieć 0 lub dowolną inną liczbę potomków:
Dla tej struktury gdy chcę znaleźć wężeł nr. 7 funkcja zwraca mi null'a.
public static Participant FindParticipantById(Participant part, uint id)
{
if (part.Id == id)
return part;
foreach (Participant part in participant.child)
{
if (part.Id == id)
return part;
}
foreach (Participant part in participant.child)
{
if (part.child.Any())
{
return FindParticipantById(part, id);
}
}
return null;
}