我想在Java中使用樹結構,但我需要它在其數據字段中保存不同類型。我的問題的格式與此this question非常相似,但我無法根據該問題的答案找到我的問題的答案。如何在Java中使用多種對象類型構建樹?
以下是我簡單的TreeNode類。我只包括我的代碼的骨架。
public class TreeNode<Character> {
public Character data;
public TreeNode<Character> parent;
public TreeNode<Character> leftChild;
public TreeNode<Character> rightChild;
// basic methods, code omitted for simplicity
public TreeNode(Character data) {...}
public TreeNode<Character> addLeftChild(Character data) {...}
public TreeNode<Character> addRightChild(Character data) {...}
}
我還有一個自定義類public class NFA
,我希望能夠在我的樹數據存儲在以下方式:
root
/ \
NFA Character
/ \
Character Character
等等...
什麼我是否可以在課堂上進行更改以使樹支持Character
和NFA
?我應該在每種方法中使用public class TreeNode<Object>
然後以某種方式將Object
作爲Character
或NFA
嗎?
我已經看到其他使用Iterator
的例子,但是在閱讀了Java文檔之後,我仍然不確定如何實現它。
作爲參考,這裏是NFA
的骨架。 Character
是通用的java.lang.Character
類。
public class NFA {
public int numStates;
public ArrayList<Character> alphabet;
public ArrayList<Transition> transitionFunction;
public int startState;
public ArrayList<Integer> endStates;
// constructors
}
這個人這樣做:http://stackoverflow.com/questions/43905036/why-cant-i-write-my-binary-tree-inside-a-file –
@GlenPierce技術上的作品,並感謝您的該解決方案,但有沒有更清晰的方式,然後添加第二個數據字段(一個字符和一個NFA)?如果我這樣做,那麼樹會佔用更多的內存,並且有很多大部分未使用的位。 –