我正在尋找一棵樹,最適合我的用例。樹應該包含類型硬件,的元件,其被包括可變的ElementType:用於比較樹之間的樹結構
enum ElementType{
Microcontroller;
Core;
Memory;
Sensor;
Pin;
Network;
}
的節點應該硬件元件的的ElementType之後被命名爲:
一旦我建立了幾棵樹(比如上面的那棵樹),我想將它們相互比較並檢查一棵樹是否是另一棵樹的一部分。例如。上面的樹應該與下面的樹進行比較,結果它應該讓我回來,第一棵樹是第二棵樹的一部分。樹木應通過其節點名稱(的ElementType)進行比較,因爲底層對象不同,每個樹中:
有什麼樹形的結構在Java中,這將適合我的要求是什麼?
Thx for this!我會稍後測試它,讓鄒知道:) – ph09
好吧,到目前爲止,具有樹結構的第一部分工作良好。但是比較算法不起作用。我試着用上面的例子,但是它給了我一個「錯誤」的回來,這是不對的,因爲第一棵樹的所有子樹都包含在第二棵樹中。在例子的「equalsIgnoreParent」方法中,將檢查子元素的大小,這是不正確的。我現在嘗試了幾個小時來提供我自己的解決方案,但這非常困難。 – ph09
啊,我顯然沒有完全理解你的問題。我的'''equalsIgnoreParent'''方法檢查兩個節點是否完全相同(忽略父節點)。你需要調整它以檢查是否所有'''other'''節點的元素都出現在''''this'''節點中(並且處於相同的深度)。這有點棘手,但可以完成。 –