我有一個很好的Java中的二叉樹。但我想增強節點中的數據內容。可比用於二叉樹結構
for(int i = 1; i <=10; i++)
t.insert(new Integer(i));
這將增加的項目是這樣的::
public void insert(Comparable item) {
current = parent = grand = header;
nullNode.element = item;
...
}
這裏是樹的格式:
private static class RedBlackNode {
// Constructors
RedBlackNode(Comparable theElement) {
this(theElement, null, null);
}
RedBlackNode(Comparable theElement, RedBlackNode lt, RedBlackNode rt) {
element = theElement;
left = lt;
right = rt;
color = RedBlackTree.BLACK;
}
Comparable element; // The data in the node
RedBlackNode left; // Left child
RedBlackNode right; // Right child
int color; // Color
}
對於顯示目前我可以在上面做諸如添加值樹,我這樣做:
private void printTree(RedBlackNode t) {
if(t != nullNode) {
printTree(t.left);
System.out.println(t.element);
printTree(t.right);
}
}
雖然在許多其他語言編程時,元素將被聲明爲struct,對於此sample code在Java中它聲明爲Comparable,並且當前僅將一個元素作爲整數。我的問題是,我該如何使用它類似於一個結構,以便能夠同時操縱它,例如在這個僞代碼做:
System.out.println(t.element.valueInt);
System.out.println(t.element.firstNameString);
System.out.println(t.element.lastNameString);
我都基於一些以前posts嘗試不同的語法組合,但目前還沒有工作。
對於當前的代碼版本添加評論,請檢查Gist。
所有建議深表感謝。
我想你會需要實現Comparable接口並重寫compareTo()方法。 – gyanu