我試圖實現方法在Java中創建二進制搜索樹,最終將能夠創建一個字引用報告。爲二叉搜索樹編寫插入方法
我的問題是我無法讓我的insertItem
方法正確編譯。
行else if(word.compareTo(r.item)){
給出的編譯器錯誤指向r.item
,並表示它不能轉換爲字符串。我該怎麼做才能解決這個問題?
public void insert(String word) {
root = insertItem(root, word);
}
protected TreeNode insertItem(TreeNode r, String word) {
//base case
if (r==null) {
new TreeNode(new WordRefs(word));
}
else if (word.compareTo(r.item)) {
r.left = insertItem(r.left, word);
} else {
r.right = insertItem(r.right, word);
}
return r;
}
public class WordRefs {
private String word;
private LinkedList<Integer> lineNumbers;
public WordRefs(String word) {
this.word = word;
lineNumbers = new LinkedList<>();
}
public void addLine(int lineNumber) {
lineNumbers.add(lineNumber);
}
public String getWord() {
return word;
}
public LinkedList<Integer> getLineNumbers() {
return lineNumbers;
}
public String toString() {
String result = word + ":";
for (Integer ii : lineNumbers) {
result += " " + ii;
}
return result;
}
}
class TreeNode {
WordRefs item;
TreeNode left;
TreeNode right;
public TreeNode(WordRefs item) {
this.item = item;
this.left = this.right = null;
}
public TreeNode(WordRefs item, TreeNode left, TreeNode right) {
this.item = item;
this.left = left;
this.right = right;
}
}
您可以發佈您WordRefs類和你的樹節點類,我回答的問題與之前相同的類和還沒有看到他們 – JRowan 2015-04-02 01:04:49
我添加的代碼都,它告訴我WordRefs不能轉換爲字符串 – 2015-04-02 01:14:02
我只是把並回答使用getWord()方法和它相比0 – JRowan 2015-04-02 01:20:20