【发布时间】: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
如何在 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
你可以这样做:
int center = stack1.size() / 2;
//Remove the half
int counter = 0;
for(int i=0; counter<center;counter++) {
stack1.remove(i);
}
【讨论】:
如果您在堆栈中有元素计数,您可以弹出前半部分然后打印下半部分(如果您不想丢失元素,请将其推送到另一个堆栈)
如果堆栈中没有元素计数,则需要创建另一个堆栈(例如 stack2),从堆栈 1 弹出元素并推送到堆栈 2,然后保持元素计数。
获得计数后,从 stack2 中弹出元素并推入 stack1,只打印从 stack2 中弹出的前半部分元素。
【讨论】: