繁体   English   中英

如何有效地删除 Java 中堆栈的下半部分元素?

[英]How do I efficiently remove bottom half elements of a stack in Java?

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

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

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

一旦你得到了计数,从stack2中弹出元素并推入stack1,并且只打印从stack2中弹出的前半部分元素。

你可以这样做:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM