Java中如何实现堆栈数据结构
发布时间:2023-07-01 05:10:42
在Java中,可以通过使用数组或链表来实现堆栈数据结构。
1. 使用数组实现堆栈数据结构:
- 首先,定义一个数组来存储堆栈数据。
- 定义一个变量top来指示栈顶的位置,初始值为-1。
- 实现push操作,将要入栈的元素放入数组的top+1的位置,并将top的值加1。
- 实现pop操作,返回数组top位置的元素,并将top的值减1。
示例代码如下:
public class ArrayStack {
private int[] stack;
private int top;
public ArrayStack(int capacity) {
stack = new int[capacity];
top = -1;
}
public void push(int element) {
stack[++top] = element;
}
public int pop() {
return stack[top--];
}
public static void main(String[] args) {
ArrayStack stack = new ArrayStack(5);
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println(stack.pop());
System.out.println(stack.pop());
}
}
2. 使用链表实现堆栈数据结构:
- 首先,定义一个节点类Node来表示链表的节点,包含一个value属性和next指针。
- 定义一个head指针来指向链表的头节点。
- 实现push操作,创建一个新的节点,并将新节点的next指向head,然后将head指向新节点。
- 实现pop操作,返回head指向的节点的value,并将head指向head的next节点。
示例代码如下:
public class LinkedListStack {
private Node head;
private class Node {
private int value;
private Node next;
public Node(int value) {
this.value = value;
}
}
public void push(int element) {
Node newNode = new Node(element);
newNode.next = head;
head = newNode;
}
public int pop() {
int poppedValue = head.value;
head = head.next;
return poppedValue;
}
public static void main(String[] args) {
LinkedListStack stack = new LinkedListStack();
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println(stack.pop());
System.out.println(stack.pop());
}
}
以上是通过数组和链表两种方式实现堆栈数据结构的示例代码。在实际使用中,可以根据具体的需求选择合适的实现方式。
