I have a object, let’s call it “Friend”.
This object has method “GetFriendsOfFriend”, that returns a List<Friend>.
Given a user input of say 5, all of the Friends friends and the friends friends friends (you get the point) down in a level of 5 (this can be up to 20).
This may be a lot of calculations, so I don’t know if recursion is the best solution.
Does anyone have a smart idea of
1. How to do this recursive function best?
2. How to do it without recursion.
Thanks!
Whilst is is certainly possible to do this without recursion, I don’t see a particular problem with what you’re trying to do. To prevent things going crazy, it might make sense to set a maximum to prevent your program from dying.
EDIT: Fixed an error in the code in that an actual friend would not get added, just “their” friends. This is only necessary when adding friends after a depth of “1” (the first call). I also made use of
Containsto check for duplicates.