LinkedList數據結構是一種雙向的鏈式結構,每一個對象除了數據本身外,還有兩個引用,分別指向前一個元素和后一個元素。
棧的定義
棧(Stack)是限制僅在線性表的一端進行插入和刪除運算。
(1)通常稱插入、刪除的這一端為棧頂(Top),另一端稱為棧底(Bottom)。
(2)當線性表中沒有元素時稱為空棧。
(3)棧為后進先出(Last In First Out)的線性表,簡稱為LIFO表。
棧的修改是按后進先出的原則進行。每次刪除的總是當前棧中"最新"的元素,即最后進棧的元素,而最先插入的是被放在棧的底部,要到最后才能刪除。
import java.util.LinkedList; /** * Created by winner_0715 on 2016/3/13. */
public class MyStack { private LinkedList list = new LinkedList<>(); public void push(Object object) { list.addFirst(object); } public Object pop() { return list.removeFirst(); } public Object peek() { return list.getFirst(); } public boolean empty() { return list.isEmpty(); } }
隊列定義
隊列(Queue)是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表
(1)允許刪除的一端稱為隊頭(Front)。
(2)允許插入的一端稱為隊尾(Rear)。
(3)當隊列中沒有元素時稱為空隊列。
(4)隊列亦稱作先進先出(First In First Out)的線性表,簡稱為FIFO表。
import java.util.LinkedList; /** * Created by winner_0715 on 2016/3/13. */
public class MyQueue{ private LinkedList list = new LinkedList(); public void put(Object object){ list.addLast(object); } public Object get(){ return list.removeFirst(); } public boolean isEmpty(){ return list.isEmpty(); } }
