我需要实现size()函数,以便它可以计算列表中元素的数量。
我不能使用计数变量。应该可以工作(考虑到我们的“最高”节点和构造函数[默认]设置)。我知道我必须使用循环,但我不知道如何像对数组一样引用索引。
public class DropOutStack<T> implements StackADT<T> {
private int max;
private LinearNode<T> top;
public DropOutStack(){
max = 10;
top = null;
}
public DropOutStack(int capacity){
setMaxSize(capacity);
}
public DropOutStack(T element){
LinearNode<T> temp = newLinearNode(element);
temp.setNext(top);
top = temp;
max = 10;
}
public DropOutStack(T element, int capacity){
LinearNode<T> temp = newLinearNode(element);
temp.setNext(top);
top = temp;
setMaxSize(capacity);
}
public int size(){
}
public boolean isEmpty(){
if(top == null) return true;
return false;
}
}
DropOutStack列表=新的DropOutStack(“ T”,4);
System.out.print(list.size());
应打印1.由于仅添加了“ T”。
添加合成类的屏幕快照。我想我必须从那里使用一种方法。接口只是声明了push pop peek isempty函数。没有代码。我相信size()函数不需要。这是我的第一门编程课,所以我希望我能提供解决此问题所需的一切。请帮助enter image description here
答案 0 :(得分:0)
类似的东西会计算元素:
ToIntFunction<LinearNode<T>> counter = (node) -> {
int count = 0;
while( node != null ) {
count++;
node = node.getNext();
}
return( count );
};
...应用于DropOutStack类size()函数:
public int size() {
return( counter.applyAsInt( top ) );
}