我正在用鍵值節點生成二叉樹。爲二叉樹(通用)實現compareTo(可比較的<T>)
它的工作原理是這樣的:
的排序如下: 如果你實現你給一個鍵和一個值(並不重要),它會檢查是否有一個節點已如果沒有一個新的節點將它創建爲第一個節點。現在它檢查密鑰是否小於第一個節點的密鑰,如果是的話,它會將它作爲左節點(如果還沒有的話),如果有一個它將迭代並重新檢查它。較大的鍵/右節點相同。如果密鑰等於當前節點的密鑰,它將覆蓋該節點。
如果我使用類似int的東西,此方法正在工作。 現在我想做它作爲一個通用的,所以我想從Comparable接口添加compareTo,因爲我可以檢查密鑰是否小於,等於或大於當前節點的密鑰。我知道我必須使用這些鍵,但我無法自己編寫任何compareTo方法。我不知道如何讓它工作。目前我使用我的程序
@Override
public int compareTo(TreeNode<Type> node) {
//method
}
屬性是: 節點(第一,以前,左,右),鍵,值 類型鍵,值 節點myNodes(上,...)
classdefinitions:
public class Tree<Type> {
...
public class TreeNode<Type extends Comparable<Type>>{
...
}
public int compareTo(TreeNode<Type> Node){
//method
}
}
基本上,您不必實現compareTo,因爲已經爲Java中的數字和字符串類型實現了Comparable接口,並且您可以爲任何其他**特定的**自定義類編寫任何其他實現。在樹中,你只需要使用它。但是,由於我無法理解你問題的最後部分,所以試圖更清楚。 – 2015-01-09 23:10:45
所以首先我不知道哪些類型會依賴於我的老師。所以我必須得到一個compareTo的通用版本,它比較兩個節點的通用密鑰並檢查哪一個是「較小」或「較大」 」。最後一部分只是說明每個屬性是如何定義的 – NhatNienne 2015-01-09 23:13:21