Nie wiem, czy o to ci chodzi, ale zazwyczaj jest to organizowane tak, że masz elementarną strukturę danych:
{
index: number;
parentIndex: number;
}
I teraz masz głównego noda (rozwidlenie) on nie ma rodzica więc parentIndex = null, natomiast jego dzieci będą miały parentIndex = indeksowi głównego one też mogą mieć dzieci, które przechowują indeks swojego rodzica. Znalezienie wszystkich rozwidleń związanych z dzieckiem będzie polegało na przeskakiwaniu z indeksu na indeks aż znajdziesz głównego, który rodzica mieć nie będzie. Elementy będą przechowywane w tablicy, można to zorganizować w klasie, która udostępni metody dodawania/wyszukiwania. Można to też jeszcze inaczej zorganizować ale ta struktura jest też ciekawa bo można ją zastosować np w bazie danych.