La lingua che sto usando è C #, ma cerco più aiuto con l'algoritmo più di quanto mi interessi con quale lingua. Ho cercato di sviluppare questo algoritmo per un po 'di tempo e non riesco a smuoverlo.
Ho una struttura ad albero che ha molte relazioni genitore / figlio. Quindi la foglia numero 1 può avere figli, i bambini possono avere figli, e così via e così via. Questo forma un albero. Il mio problema è che voglio essere in grado di elencare tutti i possibili percorsi lungo l'albero fino in fondo.
I miei dati sono in un elenco C # di oggetti e ogni oggetto ha 2 campi, padre e figlio.
Quindi i miei dati potrebbero essere qualcosa del genere:
Parent Child
1 2
1 3
2 4
2 5
3 6
3 7
3 8
4 9
4 10
I miei dati reali sono più complessi di questo perché ho migliaia di righe. Nell'esempio sopra qui sono i risultati che voglio raggiungere:
1 2 4 9
1 2 4 10
1 2 4
1 2 5
1 3 6
1 3 7
Ho visto alcune altre soluzioni simili su questo sito, ma erano leggermente diverse da quelle di cui avevo bisogno. Una foglia nel mio albero può avere più di 2 bambini come mostrato sopra.