14.编写一个程序,使用LinkedList实现一个简单的堆栈(Stack)数据结构。
堆栈(Stack)是一种遵循后进先出(LIFO,Last In First Out)原则的数据结构。下面是一个使用Java的LinkedList
类来实现堆栈的简单示例:
java复制代码
import java.util.LinkedList; | |
public class Stack<T> { | |
private LinkedList<T> list; | |
public Stack() { | |
list = new LinkedList<>(); | |
} | |
// 入栈操作 | |
public void push(T item) { | |
list.addFirst(item); | |
} | |
// 出栈操作 | |
public T pop() { | |
if (isEmpty()) { | |
throw new RuntimeException("Stack is empty"); | |
} | |
return list.removeFirst(); | |
} | |
// 查看栈顶元素 | |
public T peek() { | |
if (isEmpty()) { | |
throw new RuntimeException("Stack is empty"); | |
} | |
return list.getFirst(); | |
} | |
// 检查栈是否为空 | |
public boolean isEmpty() { | |
return list.isEmpty(); | |
} | |
// 获取栈的大小 | |
public int size() { | |
return list.size(); | |
} | |
public static void main(String[] args) { | |
Stack<Integer> stack = new Stack<>(); | |
// 入栈操作 | |
stack.push(1); | |
stack.push(2); | |
stack.push(3); | |
System.out.println("Stack size: " + stack.size()); | |
// 查看栈顶元素 | |
System.out.println("Top element: " + stack.peek()); | |
// 出栈操作 | |
System.out.println("Popped element: " + stack.pop()); | |
System.out.println("Stack size after pop: " + stack.size()); | |
} | |
} |
在这个程序中,我们定义了一个泛型类Stack<T>
,它使用LinkedList
作为内部存储结构。push
方法用于将元素添加到栈顶,pop
方法用于从栈顶移除并返回元素,peek
方法用于查看栈顶元素但不移除它,isEmpty
方法用于检查栈是否为空,size
方法用于获取栈的大小。
在main
方法中,我们创建了一个Stack<Integer>
对象,并进行了入栈、查看栈顶元素和出栈操作