java - 您可以将第 n 个元素移动到堆栈顶部的堆栈

标签 java algorithm data-structures

我正在寻找一个 Stack 数据结构,它也允许将第 n 个元素移动到堆栈的顶部。因此,除了 pop()、push()、peek() 之外,我还想要类似 moveToTop(int n) 的东西,其中堆栈顶部 n=0,堆栈底部 n=size-1。

实现它的最佳方法是什么?我在 Java 工作。

最佳答案

标准栈数据结构中没有 moveToTop 方法,但如果你想这样做,我认为你可以像下面这样实现:

public class MyStack<T> extends Stack<T>{

    public synchronized void moveToTop(int n) throws Exception {
        int size = this.size();
        if(n>size) {
            throw new Exception("error position");
        }
        T ele = remove(n);
        push(ele);
    }
}

关于java - 您可以将第 n 个元素移动到堆栈顶部的堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54489229/

相关文章:

java - 请求被拒绝,因为在 spring boot 中没有找到 multipart 边界

java - 帮助 :Graph contest problem: maybe a modified Dijkstra or another alternative algorithm

java - 如何在 Adwords API v201003 中使用出价模拟器

java - 显示两个数组中不属于两个数组的元素

c++ - 范围内的最低值

algorithm - 按引用或按值链接列表?

java - 在这种情况下,我选择组合而不是继承是正确的吗?

java - java中如何读取超过100000行的excel文件?

比较两个数据结构的值

algorithm - 1 到 k 范围内 n 个值的基于比较的排序的下限