复制
收藏
提问
简洁
封装一个自定义的栈结构和队列 MyStack 持有 LinkedList 方法:压栈(push),弹栈(pop)返回弹出数据, 查看栈顶数据(peek),判断是否为空(isEmpty)
0秒前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
自定义栈结构和队列封装
- 自定义栈类:使用
LinkedList
实现栈结构,提供压栈、弹栈、查看栈顶和判断空栈的方法。 - 自定义队列类:同样使用
LinkedList
实现队列结构,提供入队、出队、查看队首和判断空队列的方法。
MyStack 类实现
- 要点总结描述1:使用
LinkedList
作为底层数据结构。3 - 要点总结描述2:实现
push
方法,用于元素压栈。1 - 要点总结描述3:实现
pop
方法,用于元素弹栈并返回弹出数据。1 - 要点总结描述4:实现
peek
方法,用于查看栈顶数据。1 - 要点总结描述5:实现
isEmpty
方法,用于判断栈是否为空。1
MyQueue 类实现
- 要点总结描述1:使用
LinkedList
作为底层数据结构。2 - 要点总结描述2:实现
enqueue
方法,用于元素入队。2 - 要点总结描述3:实现
dequeue
方法,用于元素出队并返回出队数据。2 - 要点总结描述4:实现
peek
方法,用于查看队首数据。2 - 要点总结描述5:实现
isEmpty
方法,用于判断队列是否为空。2
实现示例
import java.util.LinkedList;
public class MyStack {
private LinkedList<Integer> stack;
public MyStack() {
stack = new LinkedList<>();
}
public void push(int x) {
stack.addFirst(x);
}
public int pop() {
return stack.removeFirst();
}
public int peek() {
return stack.getFirst();
}
public boolean isEmpty() {
return stack.isEmpty();
}
}
public class MyQueue {
private LinkedList<Integer> queue;
public MyQueue() {
queue = new LinkedList<>();
}
public void enqueue(int x) {
queue.addLast(x);
}
public int dequeue() {
return queue.removeFirst();
}
public int peek() {
return queue.getFirst();
}
public boolean isEmpty() {
return queue.isEmpty();
}
}
通过上述代码,我们实现了自定义的栈和队列结构,利用 LinkedList
的特性,可以高效地进行元素的插入和删除操作。36
你觉得结果怎么样?