【Java--数据结构】栈的应用
栈(Stack)是一种线性数据结构,遵循后进先出(LIFO)原则。在Java中,我们可以使用标准库中的Stack
类,也可以自己实现一个栈。以下是一个简单的自定义栈的示例:
public class MyStack<T> {
private List<T> list;
public MyStack() {
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 StackExample {
public static void main(String[] args) {
MyStack<Integer> stack = new MyStack<>();
// 入栈
stack.push(1);
stack.push(2);
stack.push(3);
// 查看栈顶元素
System.out.println("栈顶元素: " + stack.peek()); // 输出: 栈顶元素: 3
// 出栈两次
stack.pop();
stack.pop();
// 再次查看栈顶元素
System.out.println("栈顶元素: " + stack.peek()); // 输出: 栈顶元素: 1
// 判断栈是否为空
System.out.println("栈是否为空: " + stack.isEmpty()); // 输出: 栈是否为空: false
}
}
在这个示例中,我们定义了一个泛型类MyStack
,它具有入栈(push
)、出栈(pop
)、查看栈顶元素(peek
)以及判断栈是否为空(isEmpty
)的基本操作。然后,我们创建了一个StackExample
类来演示如何使用MyStack
。
评论已关闭