Dato un elenco di transazioni come:
A -> 10 to B
B -> 10 to C
Il modo ingenuo di regolare la transazione sarebbe:
C owes 10 to B
B owes 10 to A
Ma la stessa transazione potrebbe essere risolta con:
C owes 10 to A
Sto rappresentando ogni transazione come un oggetto:
{
amount: Number,
account: Object,
linkId: Object
}
Quindi, per una transazione come: A da 10 a B ci sarebbe un oggetto come:
{amount: +10, account: B, linkId: A}
Quindi, se visualizzo le transazioni, anche ciascun nodo potrebbe avere cicli. Sto cercando di trovare un algoritmo efficiente ma non mi sento sicuro.