《Java初阶数据结构》----4.<线性表---Stack栈和Queue队列>
栈(Stack)和队列(Queue)是两种重要的线性数据结构,它们在计算机科学中有着广泛的应用,比如在编译器设计、操作系统进程管理、游戏等领域中作为基础数据结构使用。
以下是使用Java实现栈和队列的简单示例:
栈的实现:
public 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();
}
}
队列的实现:
public 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();
}
}
在上述代码中,我们使用了Java的ArrayList
来存储栈和队列的元素。push
、pop
、peek
分别用于进行入栈、出栈和查看栈顶元素的操作,对应先入后出的特性。enqueue
、dequeue
、peek
同样用于进行入队、出队和查看队首元素的操作,对应先入先出的特性。isEmpty
方法用于检查栈或队列是否为空。
评论已关闭