1. 程式人生 > >Java建立一個棧與佇列

Java建立一個棧與佇列

關於棧

  棧(Stack)是限定只能在一段進行插入和刪除操作的線性表。

  進行插入和刪除操作的一端稱為“棧頂”(top),另一端稱為“棧底”(bottom)。

  棧的插入操作稱為“入棧”(push),棧的刪除 操作稱為“出棧”(pop)。

  棧具有後進先出(LIFO),先進後出(FILO)的特性。

Java Stack 類 

  棧是Vector的一個子類,它實現了一個標準的後進先出的棧。

  堆疊只定義了預設建構函式,用來建立一個空棧。 堆疊除了包括由Vector定義的所有方法,也定義了自己的一些方法。

  除了由Vector定義的所有方法,自己也定義了一些方法:

序號方法描述
1boolean empty() 
測試堆疊是否為空。
2Object peek( )
檢視堆疊頂部的物件,但不從堆疊中移除它。
3Object pop( )
移除堆疊頂部的物件,並作為此函式的值返回該物件。
4Object push(Object element)
把項壓入堆疊頂部。
5int search(Object element)
返回物件在堆疊中的位置,以 1 為基數。
佇列在佇列這種資料結構中,最先插入的元素將是最先被刪除的元素;反之最後插入的元素將是最後被刪除的元素,因此佇列又稱為“先進先出”(FIFO—first in first out)的線性表。在java5中新增加了java.util.Queue接口,用以支援佇列的常見操作。該介面擴充套件了java.util.Collection介面。

Queue使用時要儘量避免Collection的add()和remove()方法,而是要使用offer()來加入元素,使用poll()來獲取並移出元素。它們的優點是通過返回值可以判斷成功與否,add()和remove()方法在失敗的時候會丟擲異常。 如果要使用前端而不移出該元素,使用
element()或者peek()方法