在Java中,LinkedList既可以用作棧,也可以用作隊列的實現。
如何使用LinkedList實現棧呢?以下是一個示例代碼:
import java.util.LinkedList; public class Stack { private LinkedListstack = new LinkedList (); public void push(int num) { stack.addLast(num); } public int pop() { return stack.removeLast(); } public int peek() { return stack.getLast(); } public boolean isEmpty() { return stack.isEmpty(); } }
如上所示,我們定義了一個Stack類,內部維護了一個LinkedList對象,使用LinkedList的addLast()方法實現入棧操作,使用removeLast()方法實現出棧操作,使用getLast()方法實現獲取棧頂元素,使用isEmpty()方法判斷棧是否為空。
那如何使用LinkedList實現隊列呢?以下是一個示例代碼:
import java.util.LinkedList; public class Queue { private LinkedListqueue = new LinkedList (); public void enqueue(int num) { queue.addLast(num); } public int dequeue() { return queue.removeFirst(); } public int peek() { return queue.getFirst(); } public boolean isEmpty() { return queue.isEmpty(); } }
如上所示,我們定義了一個Queue類,內部維護了一個LinkedList對象,使用LinkedList的addLast()方法實現入隊操作,使用removeFirst()方法實現出隊操作,使用getFirst()方法實現獲取隊首元素,使用isEmpty()方法判斷隊列是否為空。
總之,通過適當地使用LinkedList的方法,我們可以很方便地實現棧和隊列的功能。