【问题标题】:How do I efficiently remove bottom half elements of a stack in Java?如何有效地删除 Java 中堆栈的下半部分元素?
【发布时间】:2020-12-11 20:44:03
【问题描述】:

如何在 Java 中设计一种有效的方法来删除堆栈中的下半部分元素?例如: 我的堆栈是:(1,2,3,4,5,6)。输出为 4,5,6。输入为 (1,2,3,4,5,6,7,8,9,10,11) 的另一个示例。输出将从 6 到 11。

【问题讨论】:

  • 您需要先展示您的堆栈实现。

标签: java arrays data-structures stack


【解决方案1】:

你可以这样做:

int center = stack1.size() / 2;
//Remove the half
int counter = 0;
for(int i=0; counter<center;counter++) {
    stack1.remove(i);
}

【讨论】:

    【解决方案2】:

    如果您在堆栈中有元素计数,您可以弹出前半部分然后打印下半部分(如果您不想丢失元素,请将其推送到另一个堆栈)

    如果堆栈中没有元素计数,则需要创建另一个堆栈(例如 stack2),从堆栈 1 弹出元素并推送到堆栈 2,然后保持元素计数。

    获得计数后,从 stack2 中弹出元素并推入 stack1,只打印从 stack2 中弹出的前半部分元素。

    【讨论】:

    • 第一段就是我要找的!谢谢!
    • @dryre 您发布了 2 个答案。您可以将其中 1 个标记为您认为更好的解决方案。
    猜你喜欢
    • 2021-01-05
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 2021-05-27
    • 2013-11-07
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多