如何返回链表中的元素数

时间:2019-06-23 00:22:00

标签: java linked-list stack element

我需要实现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

1 个答案:

答案 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 ) );
}