14.使用LinkedList实现一个简单的堆栈(Stack)数据结构。
下面是一个简单的Java程序,使用LinkedList
来实现一个堆栈(Stack)数据结构。在这个程序中,我们定义了一个MyStack
类,它包含了一些基本的堆栈操作,如push
(压栈)、pop
(出栈)、peek
(查看栈顶元素)和isEmpty
(检查堆栈是否为空)。
java复制代码
import java.util.LinkedList; | |
public class MyStack<T> { | |
private LinkedList<T> stack; | |
public MyStack() { | |
this.stack = new LinkedList<>(); | |
} | |
// 压栈操作 | |
public void push(T item) { | |
stack.addFirst(item); | |
} | |
// 出栈操作 | |
public T pop() { | |
if (!isEmpty()) { | |
return stack.removeFirst(); | |
} else { | |
throw new RuntimeException("Stack is empty"); | |
} | |
} | |
// 查看栈顶元素 | |
public T peek() { | |
if (!isEmpty()) { | |
return stack.getFirst(); | |
} else { | |
throw new RuntimeException("Stack is empty"); | |
} | |
} | |
// 检查堆栈是否为空 | |
public boolean isEmpty() { | |
return stack.isEmpty(); | |
} | |
// 打印堆栈内容 | |
public void printStack() { | |
System.out.println(stack); | |
} | |
public static void main(String[] args) { | |
MyStack<Integer> stack = new MyStack<>(); | |
// 压栈操作 | |
stack.push(1); | |
stack.push(2); | |
stack.push(3); | |
// 打印堆栈内容 | |
stack.printStack(); | |
// 查看栈顶元素 | |
System.out.println("Top element: " + stack.peek()); | |
// 出栈操作 | |
stack.pop(); | |
// 打印堆栈内容 | |
stack.printStack(); | |
// 检查堆栈是否为空 | |
System.out.println("Is stack empty? " + stack.isEmpty()); | |
} | |
} |
在这个程序中,我们创建了一个MyStack
类,并使用LinkedList
的addFirst
方法来实现压栈操作,removeFirst
方法来实现出栈操作,getFirst
方法来实现查看栈顶元素的操作。在main
方法中,我们创建了一个MyStack
对象,并进行了一些基本的堆栈操作,包括压栈、查看栈顶元素、出栈和检查堆栈是否为空。