2013-11-10 61 views
0

這裏我聯繫棧的程序的一些代碼:爲鏈接堆棧程序創建推送功能?

import java.util.NoSuchElementException; 

class linkstack<T> { 

    private class node { 
     T value; 
     node link; 
    } 

    private node top = null; 

      ... 

現在,我的推送功能標題是這樣的:

public void push (T value) { 
     node temp = new node(); 
     temp.value = 

} 
上分配臨時的值等於在傳遞的價值這就是

林規劃推方法的參數,但林不知道我能做到這一點,因爲我不知道什麼「T」是完全正確的?

另外我寫了一個彈出功能,這是否有任何意義? :

public T pop() { 
     if (empty()) { 
     throw new NoSuchElementException ("linked_stack.pop"); 
     } else{ 
     node temp = top; 
     temp = top.link; 
     return temp.value; 

     } 
    } 

回答

0

您需要使用泛型類型的node,而不是原始類型,即:

private class Node<T> { 
    ... 
    } 

public void push (T value) { 
     Node<T> temp = new Node(); 
     temp.value = value; 
} 

的介紹,仿製藥,看看這個tutorial。有關更高級的參考,請查看Anjelika Langer's Java Generics FAQ

+0

謝謝!但你能否解釋一下,的目的究竟是什麼?那是什麼意思? – AayushK

+0

@AayushK不幸的是,這不是一個簡單的問題需要回答。在這裏,查看這個[教程](http://docs.oracle.com/javase/tutorial/java/generics/)。基本上,'T'代表一個對象類型(注意:object **不是**原語,所以'int'不會工作,你需要使用'Integer')。在完成本教程後,如果您有任何問題,我建議您提出更多問題或嘗試在線查找一些示例。這對你來說有點先進,但是在將來,這個[泛型參考](http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html)可能很有價值。 –

+0

你可以檢查彈出函數Ive編寫,讓我知道如果它的權利,因爲我不確定的溫度= top.link – AayushK