2012-04-26 62 views
0

我有一個關於堆棧的問題。一般來說,我會定義最簡單的方法推法像如何用Java定義分類堆棧

Int size; 
public void push(int value){ 
    elements[size++] = value;} 

如果我想推一個遞增的順序整數,並調用pop方法在遞減的順序,我怎麼能確定裏面的這個方法相同的推送方法?

+0

你能解釋更多嗎?我的觀點是,你寫的是關於LIFO(後進先出)的結構 - 這是一個堆棧,當你把1,2,3,4放到它時,你想得到4,3,2,1,所以你的流行音樂是'返回元素[size - ];'。 – Betlista 2012-04-26 08:27:46

回答

0

的它不保持堆棧嘗試sorted list

並獲得的第一個元素,並在彈出時將其刪除。

-1

堆棧通常是LIFO數據結構。如果你正在尋找一些有序的收藏,看看SortedSet

+0

由於您無法添加重複條目,因此SortedSet無法在此工作。 – 2012-04-26 08:31:29

+0

在排序的集合中,如果我輸入'1,2,4,4',那麼集合將是'1,2,4',並且我們丟失重複條目。 – 2012-04-26 08:32:37

+0

這可能是實際需要的。 – Snicolas 2012-04-26 08:35:33

0

使用排序後的集合來存儲數據而不是普通數組。你可以找到創建排序列表here的建議。

1

您沒有排序設施在堆棧
更好的方法是,在推入堆棧之前,按升序對數據進行排序。在從堆棧彈出數據時,您將按降序獲取數據。