2015-09-07 3 views
-1

Это хороший способ подсчета элементов в стеке? им не уверен, что это правильный метод реализацииПодсчет элементов в стеке ADT

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
public int count() { 
    return stack.size(); 
} 

Почему размещение его снова? Я уже ответил на ваш previous пост ...

, как вы сделали это не путь из (п) поведения O! С моим решением stack.size() оно находится в O (1), потому что единственное, что вам нужно сделать, это задать размер ArrayList (ArrayList явно помнит его размер, чтобы он мог сразу ответить на ваш вопрос (без учета элементов первый)).

+0

Совершенно верно, гораздо эффективнее. Спасибо вам за помощь :) – Josh123