2014-01-07 27 views
0

嗨,在修訂的練習文章中,我已經給出了這個問題。給出一個類的BinaryTree類的通用版本,它存儲了一個類型參數的實例E

類二叉樹在問題3存儲整數的二進制樹結構,和方法 isInOrder()測試樹的頂標籤是否大於頂部標籤大於 左子樹的頂標籤和較小的左子樹。那類的通用形式可以存儲實現該可比接口的任何類的實例:

public interface Comparable<T> 
{ 
    public int compareTo(T o); 
} 

凡instance.compareTo(ARG)如果實例 比ARG少返回負值,0,如果實例和Arg是相等,如果實例比arg大 則爲正值。例如,類Integer實現Comparable與 instance.compareTo(arg)返回實例 - arg。 (a)給出類BinaryTree的通用版本,該類存儲類型參數E的實例, ,並且要求E擴展Comparable。請注意,您將需要 更改isInOrder()方法中的代碼,以便它使用compareTo()。 在答案中不包含主要方法。

從剛纔討論的代碼是在這裏http://pastebin.com/x2p7q3wy

我真的有麻煩纏繞我的頭圍繞什麼,我對這個問題做大多數的我已經能夠找到仿製藥的信息剛使我困惑。如果有人能夠幫助我解決這個問題,或者給我一個很好的泛型類的介紹,我會非常感謝。

+1

請發表您已經嘗試了什麼。 –

+0

stackoverflow的目的不是要教你一門語言,它是爲了幫助你解決具體的問題。如果您不瞭解泛型,請閱讀教程或幻燈片/書籍。 –

+0

這是你的作業嗎? – regulus

回答

0

正如在評論中提到,這是正確的:

class BinaryTree<E extends Comparable<E>>{ 

INSERT CODE HERE 

} 

你可以這樣實現的BinaryTree所有的方法 - 使用x.compareTo(y),而不是比較運營商爲您isInOrder()方法。可能還需要其他修改,但我沒有查看所有代碼。

的好處,這是有BinaryTree類,您可以插入任何物體,只要它實現Comparable

+0

謝謝,我認爲我的主要問題是我不記得泛型類的正確結構,現在看起來很簡單,我知道從哪裏開始。 – user2320239

相關問題