から重複を削除します。は、私はクラスを持っている木
ここで、ツリーから重複したノードを削除したいと思います。
注:インスタンスのツリーを持っていこう!緑のFoo =紫はFoo
で終わるために、ツリーから重複を削除するために私ができるようになりますどのようなアルゴリズム:
-------------------------------------------
緑色のFooが紫色のFooと等しくないことを確認するために(私は別のプロパティを持つ必要があると思う)私がノードを比較することを可能にするノードまたは他のいくつかのプロパティのight。
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
重複した親ノードは、常に完全に重複したサブツリーを持つことが保証されていますか?編集:Wow @ saj私たちは同じことを同時に考えました:) – mellamokb
赤いトムが2人の子供と赤のトムと3人の子供がいたら、あなたのアルゴリズムの出力は? –