मैं नोड के साथ एक ग्राफ वर्ग है, जहां प्रत्येक नोड दूसरों से कनेक्ट कर सकते हैं:गहरी नकल एक ग्राफ संरचना
public class Node {
List<Node> connections;
}
मैं पूरी ग्राफ की एक गहरी प्रतिलिपि बनाने के लिए करना चाहते हैं।
public Node(Node other) {
connections = new ArrayList<Node>();
for (Node n : other.connections) {
connections.add(new Node(n));
}
}
तो गहरी नकल एक ग्राफ सिर्फ होगा:: एक पहला प्रयास के रूप में, मैं बनाने की तरह एक प्रति निर्माता की कोशिश की
public Graph deepCopy() {
Graph g = new Graph();
g.nodes = new ArrayList<Node>();
for (Node n : nodes) {
g.nodes.add(new Node(n));
}
}
लेकिन वह है कि के रूप में के बीच संबंध संबंध नष्ट कर देता है काम नहीं करता है नोड्स। मैं सोच रहा हूं कि अगर किसी को इसे सरल तरीके से करने के लिए सुझाव हैं? धन्यवाद।
उन लोगों के लिए जो पहचान HashMap के बारे में नहीं जानते हैं, [दस्तावेज़ीकरण] (http://docs.oracle.com/javase/7/docs/api/java/util/IdentityHashMap.html) – Swapnil
यह काम करता है भले ही ग्राफ़ में है चक्र, सही? –
@ गोंसालोरिबेरो: हाँ, मुझे ऐसा लगता है। मैंने इसे थोड़ी देर पहले लिखा था, इसलिए मैं बिल्कुल निश्चित नहीं हूं, लेकिन मुझे लगता है कि हम अपने कनेक्शन पर जाने से पहले नोड्स को आइसोमोर्फिज्म मानचित्र में डालते हैं, इसका मतलब है कि चक्र सही ढंग से संभाले जाते हैं। –