淘先锋技术网

首页 1 2 3 4 5 6 7

Java中的栈是一种常见的数据结构,主要用于实现后进先出(LIFO)的操作顺序,该结构有两种实现方式:顺序栈和链式栈。

顺序栈:

public class ArrayStack {
private int top; // 栈顶位置
private int[] data; // 存储数据的数组
public ArrayStack(int size) {
data = new int[size];
top = -1;
}
// 判断栈是否为空
public boolean isEmpty() {
return top == -1;
}
// 判断栈是否已满
public boolean isFull() {
return top == data.length - 1;
}
// 入栈
public void push(int value) {
if (isFull()) {
System.out.println("栈已满,无法入栈");
return;
}
data[++top] = value;
}
// 出栈
public int pop() {
if (isEmpty()) {
System.out.println("栈已空,无法出栈");
return -1;
}
return data[top--];
}
}

链式栈:

public class LinkedStack {
private Node top; // 栈顶节点
private class Node {
int value;
Node next;
public Node(int value) {
this.value = value;
}
}
// 判断栈是否为空
public boolean isEmpty() {
return top == null;
}
// 入栈
public void push(int value) {
Node newNode = new Node(value);
if (isEmpty()) {
top = newNode;
} else {
newNode.next = top;
top = newNode;
}
}
// 出栈
public int pop() {
if (isEmpty()) {
System.out.println("栈已空,无法出栈");
return -1;
}
int value = top.value;
top = top.next;
return value;
}
}

以上就是Java中栈结构的两种实现方式:顺序栈和链式栈。两者在实现方式上有所不同,可以根据实际需求进行选择。