2015-05-19 5 views
0

Предположим, что изначально пустой стек S выполнил в общей сложности 25 операций push, 12 верхних операций и 10 поп-операций, 3 из которых возвратили null, чтобы указать пустой стек. Каков текущий размер S?Каков текущий размер стека?

Я имею в виду, что S.size = 7, потому что 10 операции эстрадные имеют 3 из 10 возвращается нуль, чтобы указать пустой стек, но на самом деле не уверен, если это правильно или нет

Может ли один дать правильный ответ и объяснение?

ответ

5
  • Вы совал общее количество 10-3 = 7 элементов, так как 3 из хлопков не изменяет состояние (и размер) стека, так что только 7 выскакивает сделал.
  • Вы нажали в общей сложности 25 элементов.
  • Верхние операции не изменяют состояние (и размер) стека, а могут быть проигнорированы.

Общий размер стека 25-7 = 18 в конце.

Обратите внимание, что порядок операций не имеет значения, только сумма «succesfull» pop() s и сумма push() s.

+0

Если в стеке более 10 элементов, то как получается, что из 3-х из 10 операций возврата возвращается значение null. Это не должно быть так, ноль указывает пустой стек –

+3

@daskinder У вас нет информации о ORDER операций. Что делать, если порядок был 'pop(), pop(), pop(), push() * 25, pop() * 7, top() * 12'. Первый 3 'pop()' возвращает null и не меняет размер стека, но только последние 7. Это один действительный пример, отвечающий условиям, описанным в вопросе. – amit

0

25 толчков = 25 индекс

10 выскакивает = 25 - 10 = 15

3 хлопки не произошло = 15 + 3 = 18

вершины не имеет значения, поэтому она должна быть 18

0

Это разница между количеством push и pop.

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