2016-09-20 1 views
-2

У меня возникли проблемы с тем, как удалить и распечатать каждый элемент в объекте IntStack до тех пор, пока он не станет пустым. Должен ли я использовать оператор if? Я знаю основы стеков, например: Предположим, что s относится к объекту IntStack.Как удалить и распечатать каждый элемент в объекте IntStack до тех пор, пока он не станет пустым?

Если бы я хотел, чтобы добавить значение 100 в верхней части с, я бы просто использовать s.push(100)

Если бы я хотел, чтобы удалить и распечатать верхнюю величину с, я хотел бы использовать s.pop()

Если я хотел бы распечатать верхнее значение, не удаляя его, я бы использовал s.peek()

Я столкнулся с проблемой, когда попытаюсь удалить и распечатать каждый элемент, пока он не станет пустым.

+0

'IntStack' не является стандартным классом JDK. Какую библиотеку вы используете? – shmosel

+0

С чем вы столкнулись? – immibis

ответ

1

Даже если InStack некоторые стек третьей партии, в соответствии с описанием в вопросе он реализует все стандартные стек методы, поэтому следующее должно работать.

public void print(Stack s) 
{ 
    while(!s.isEmpty()) 
    { 
     System.out.println(s.pop()); 
    } 

} 
+0

Почему не 'System.out.println (s.pop())'? – shmosel

+0

@shmosel Я редактировал то же самое, спасибо. – JTeam

+0

@JTeam Могу ли я спросить, что такое «!» делает в (! s.isEmpty)? –

-1

Assumming когда нет ничего в стеке, s.peek() вернет null,

while(s.peek() != null){ 
    System.out.println(s.pop()); 
} 
+0

Независимо от того, что «IntStack», он, вероятно, содержит примитивы. – shmosel

Смежные вопросы