写代码 java栈的数据结构
时间: 2023-06-30 09:21:27 浏览: 54
在Java中,可以使用数组或链表来实现栈的数据结构。以下是使用链表实现栈的示例代码:
```
public class Stack<T> {
private Node<T> top; // 栈顶节点
// 节点类
private static class Node<T> {
private T data;
private Node<T> next;
public Node(T data, Node<T> next) {
this.data = data;
this.next = next;
}
}
// 入栈
public void push(T item) {
Node<T> newNode = new Node<>(item, top);
top = newNode;
}
// 出栈
public T pop() {
if (top == null) {
throw new EmptyStackException();
}
T data = top.data;
top = top.next;
return data;
}
// 获取栈顶元素
public T peek() {
if (top == null) {
throw new EmptyStackException();
}
return top.data;
}
// 判断栈是否为空
public boolean isEmpty() {
return top == null;
}
// 获取栈的大小
public int size() {
int size = 0;
Node<T> node = top;
while (node != null) {
size++;
node = node.next;
}
return size;
}
}
```
使用示例:
```
Stack<String> stack = new Stack<>();
stack.push("Java");
stack.push("Python");
stack.push("C++");
System.out.println(stack.pop()); // C++
System.out.println(stack.pop()); // Python
System.out.println(stack.peek()); // Java
System.out.println(stack.size()); // 1
System.out.println(stack.isEmpty()); // false
```