LinkedList本身添加了可以使其用於棧、隊列和雙端隊列的方法,數據以鏈接方式存儲,Deque為隊列接口,Entry是鏈接數據結構
public class LinkedList
extends AbstractSequentialList
implements List
{
private transient Entry
private transient int size = 0;
因為LinkedList也實現了List接口的其它方法,下面根據棧實現的方法重新自己寫一遍只實現棧的操作,如下:
/**
* 使用linkedList實現棧操作
* @author sunny
* LinkedList實現了和ArrayList一樣的List接口,它在執行一些插入和移除操作時比ArrayList效率高,
* 因為它底層是鏈表的實現方式,但是它在隨機訪問時沒有ArrayList效率高,數組可以直接訪問下標
* 棧的特點是先進後出
* @param
*/
public class Stack
private LinkedList
public void push(T v){
storage.addFirst(v);
}
public T peek(){
return storage.getFirst();
}
public T pop(){
return storage.removeFirst();
}
public boolean empty(){
return storage.isEmpty();
}
public static void main(String[] args){
Stack<string> stack = new Stack<string>();/<string>/<string>
for(String s : "This is a dog!".split(" ")){
stack.push(s);
}
while (!stack.empty()) {
System.out.println(stack.pop());
}
}
}
輸出結果:
dog!
a
is
This
閱讀更多 碼農宸娛樂淇 的文章