2013-08-24 70 views
0

我正在編寫一個程序來執行Java中的基本隊列操作。到目前爲止,如果在同一個隊列上執行add()和remove()操作,然後移動元素,那麼所有的工作都很好。我試圖做更多,但我無法實現它。問題是,在add()操作期間,程序不能將元素添加到現有隊列中,而是必須返回帶有添加元素的新Queue對象。新的隊列對象必須在執行add()操作的次數時創建,關於如何完成這些操作的任何幫助?如何在每次add()操作後返回一個新的隊列對象?

+1

僅供參考這被稱爲純功能性或持久性數據結構。 – delnan

+0

向我們展示您的嘗試。 –

+0

@JBNizet我已經嘗試了基本操作 - 使用前端和結束指針添加(),remove(),peek(),完成。我無法弄清楚如何讓程序返回一個新的隊列對象。 –

回答

0

您可以使用集合類的複製構造函數來創建隊列的克隆,添加新項目,然後返回克隆。例如,LinkedList有copy constructor

public Queue<T> myAdd(Queue<T> oldQueue, T newElem) 
{ 
    Queue<T> newQueue = new LinkedList<T>(oldQueue); 
    newQueue.add(newElem); 
    return newQueue; 
} 
相關問題