复制
收藏
提问
简洁

封装一个自定义的栈结构和队列 MyStack 持有 LinkedList 方法:压栈(push),弹栈(pop)返回弹出数据, 查看栈顶数据(peek),判断是否为空(isEmpty)

83aebc147
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

你觉得结果怎么样?

以上内容由AI搜集生成,仅供参考

在线客服