Такая структура данных называется граф. Советую по алгоритмам почитать ослов (Карман сотоварищи "Алгоритмы - посроение и анализ")
Ключевые слова для поиска: алгоритмы на графах, поиск в ширину (это если искать друзей друзей) и поиск в глубину/поиск кратчайших путей (если ищешь, связаны как-нибуть пользователи через одного/двух/трёх/мильён друзей)