08.08 LinkedList認識-實現棧的操作

LinkedList本身添加了可以使其用於棧、隊列和雙端隊列的方法,數據以鏈接方式存儲,Deque為隊列接口,Entry是鏈接數據結構

public class LinkedList

extends AbstractSequentialList

implements List, Deque, Cloneable, java.io.Serializable

{

private transient Entry header = new Entry(null, null, null);

private transient int size = 0;

因為LinkedList也實現了List接口的其它方法,下面根據棧實現的方法重新自己寫一遍只實現棧的操作,如下:

/**

* 使用linkedList實現棧操作

* @author sunny

* LinkedList實現了和ArrayList一樣的List接口,它在執行一些插入和移除操作時比ArrayList效率高,

* 因為它底層是鏈表的實現方式,但是它在隨機訪問時沒有ArrayList效率高,數組可以直接訪問下標

* 棧的特點是先進後出

* @param

*/

public class Stack {

private LinkedList storage = new 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


分享到:


相關文章: