से डुप्लिकेट निकालें मैं कक्षा की है।पेड़
अब मैं एक पेड़ से डुप्लिकेट नोड्स को हटाना चाहता हूं। उदाहरण के लिए पेड़:
नोट:! हरी फू = बैंगनी फू
क्या एल्गोरिथ्म मुझे क्रम में पेड़ से डुप्लिकेट निकालने के लिए सक्षम हो जाएगा के साथ समाप्त करने के लिए:
-------------------------------------------
क्रम में यह निर्धारित करने के लिए कि हरा फू बैंगनी फू के बराबर नहीं है (! =) मुझे लगता है कि मुझे एक और संपत्ति की आवश्यकता है जो उसे स्टोर करे नोड या कुछ अन्य संपत्ति की दृष्टि जो मुझे नोड्स की तुलना करने में सक्षम बनाती है। यह गुण मुझे लगता है कि मैं जरूरत (CompareId) है:
Node root = new Node() { Name = "Root", Id = 12, Address = "0x0A1F12" };
Node tom1 = new Node() { Name = "Tom", Id = 15, Address = "0x0F1A17", Parent=root };
root.Children.Add(tom1);
Node tom2 = new Node() { Name = "Tom", Id = 15, Address = "0x0F1A17", Parent = root };
root.Children.Add(tom2);
Node foo = new Node() { Name = "Foo", Id = 99, Address = "0x4C0012", Parent=root };
root.Children.Add(foo);
Node foo1 = new Node() { Name = "Foo", Id = 99, Address = "0x4C0012", Parent = tom1 };
tom1.Children.Add(foo1);
Node foo2 = new Node() { Name = "Foo", Id = 99, Address = "0x4C0012", Parent = tom1 };
tom1.Children.Add(foo2);
Node foo3 = new Node() { Name = "Foo", Id = 99, Address = "0x4C0012", Parent = tom2};
tom2.Children.Add(foo3);
Node foo4 = new Node() { Name = "Foo", Id = 99, Address = "0x4C0012", Parent = tom2};
tom2.Children.Add(foo4);
Node joe1 = new Node() { Name = "Joe", Id = 99, Address = "0x605C2C", Parent = foo };
foo.Children.Add(joe1);
Node joe2 = new Node() { Name = "Joe", Id = 99, Address = "0x605C2C", Parent = foo };
foo.Children.Add(joe2);
क्या बच्चों भिन्न साथ डुप्लिकेट नोड के बारे में? – saj
क्या डुप्लिकेट पैरेंट नोड्स हमेशा पूरी तरह से डुप्लिकेट सबट्रीज़ की गारंटी देते हैं? संपादित करें: वाह @ एसजे हमने एक ही समय में एक ही बात सोचा :) – mellamokb
यदि आपके पास दो बच्चों के साथ एक लाल टॉम था, और तीन बच्चों के साथ एक लाल टॉम, आपके एल्गोरिदम का आउटपुट क्या होगा? –