Клонирование объектов с циклической цепочкой ссылок

Я выполняю некоторые операции над графиком в памяти, которые изменяют сам график. Мне нужно повторить эти операции несколько раз, и последующие повторы должны работать над новой копией графика. Так как график генерируется путем синтаксического анализа файла, я не хочу тратить время на повторный анализ файла для каждого повторения, поэтому я пошел по пути клонирования исходного графа.

мой node, edge а также graph все типы реализуют ICloneable, но у меня есть проблема с циклической цепочкой ссылок.

Node хранит список направленных Edgeисходит из этого. Edge хранит вес и Node это указывает на. Когда два узла имеют двунаправленное ребро, я получаю StackruException когда я пытаюсь клонировать любой узел, поскольку клонирование списка ребер любого узла неизменно означает клонирование другого узла.

Каков наилучший подход для разрешения этой циклической ссылки для целей клонирования?

0 ответов

Другие вопросы по тегам