【Java数据结构】线性表之栈和队列
以下是一个简单的栈和队列的Java实现示例:
// 栈的实现
class Stack<T> {
private java.util.List<T> list = new ArrayList<>();
public void push(T item) {
list.add(item);
}
public T pop() {
if (list.isEmpty()) {
return null;
}
return list.remove(list.size() - 1);
}
public T peek() {
if (list.isEmpty()) {
return null;
}
return list.get(list.size() - 1);
}
public boolean isEmpty() {
return list.isEmpty();
}
}
// 队列的实现
class Queue<T> {
private java.util.List<T> list = new ArrayList<>();
public void enqueue(T item) {
list.add(item);
}
public T dequeue() {
if (list.isEmpty()) {
return null;
}
return list.remove(0);
}
public T peek() {
if (list.isEmpty()) {
return null;
}
return list.get(0);
}
public boolean isEmpty() {
return list.isEmpty();
}
}
// 测试代码
public class Main {
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
Queue<Integer> queue = new Queue<>();
// 栈操作
stack.push(1);
stack.push(2);
System.out.println(stack.peek()); // 输出: 2
System.out.println(stack.pop()); // 输出: 2
// 队列操作
queue.enqueue(1);
queue.enqueue(2);
System.out.println(queue.peek()); // 输出: 1
System.out.println(queue.dequeue()); // 输出: 1
}
}
这个示例提供了栈和队列的简单实现,并在主函数中演示了如何使用它们。栈支持push, pop和peek操作,而队列支持enqueue, dequeue和peek操作。这些操作对应于线性表的栈和队列的基本操作。
评论已关闭