2

グラフ自体を変更する、メモリ内のグラフでいくつかの操作を実行しています。これらの操作を何回か繰り返す必要があり、その後の繰り返しはグラフの新しいコピーで機能する必要があります。グラフはファイルを解析することによって生成されるため、繰り返しごとにファイルを再解析するのに時間を費やしたくないので、元のグラフのクローンを作成する道をたどりました。

nodeedgeおよびタイプgraphはすべて を実装ICloneableしていますが、循環参照チェーンに問題があります。

NodeEdgeそこからの指示された のリストを保存します。Edge重みとNodeそれが指している を保存します。2 つのノードが双方向のエッジを共有しているStackOverflowException場合、いずれかのノードのクローンを作成しようとするとエラーが発生します。これは、いずれかのノードのエッジのリストをクローンすることは、常に他方のノードをクローンすることを意味するためです。

クローニングの目的でこの循環参照を解決するための最良のアプローチは何でしょうか?

4

0 に答える 0