这是计算堆栈中项目的好方法吗?我不确定这是否是正确的实施方法
private someList<E> stack;
public int countItems(){
Stack<E> newStack = new Stack<E>();
int count = 0;
while(!stack.isEmpty()){
newStack.push(this.pop());
count++;
}
for(int i = 0; i < count; i++) {
this.push(newStack.pop());
}
return count;
}
答案 0 :(得分:0)
public int count() {
return stack.size();
}
为什么要再次发布? 我已在你的previous帖子中回答了这个问题......
由于 O(n)行为,你做的方式不是你要走的路!
使用我的解决方案stack.size()
,它位于 O(1)中,因为您唯一要做的就是询问ArrayList
它的大小({{1}明确记住它的大小,以便它可以立即回答你的问题(无需先计算元素)。)