如何在java中设计一种有效的方法来删除堆栈中的下半部分元素?例如:我的堆栈是:(1,2,3,4,5,6)。输出为4、5、6。另一个输入为(1,2,3,4,5,6,7,8,9,10,11)的示例。输出将从6到11。
c90pui9n1#
如果在堆栈中有元素计数,则只需弹出前半部分,然后打印下半部分(如果不想丢失元素,请将其推到另一个堆栈)如果堆栈中没有元素计数,则需要创建另一个堆栈(比如stack2),从stack1中弹出元素并推送到stack2,然后保留元素计数。一旦得到计数,从stack2弹出元素并推入stack1,只打印从stack2弹出的前半个元素。
oymdgrw72#
您可以这样做:
int center = stack1.size() / 2; //Remove the half int counter = 0; for(int i=0; counter<center;counter++) { stack1.remove(i); }
2条答案
按热度按时间c90pui9n1#
如果在堆栈中有元素计数,则只需弹出前半部分,然后打印下半部分(如果不想丢失元素,请将其推到另一个堆栈)
如果堆栈中没有元素计数,则需要创建另一个堆栈(比如stack2),从stack1中弹出元素并推送到stack2,然后保留元素计数。
一旦得到计数,从stack2弹出元素并推入stack1,只打印从stack2弹出的前半个元素。
oymdgrw72#
您可以这样做: