2016-12-09 11 views
0

Я изучил стеки как структуры данных, и я знаю, что они работают в соответствии с правилом LIFO (Last-In-First-Out). Я столкнулся с проблемой, которая просит меня получить первые элементы, а также последние из стека. Поскольку я предпочел бы, чтобы мои знания были дважды проверены более опытными пользователями, я интересуюсь, какие элементы стека признаны первыми и последними?Каковы первые и последние элементы в структуре данных стека?

В качестве примера, давайте вставить стопку в этом порядке 1,2,3,4,5,6. Каковы первые два элемента стека и которые являются последними из двух?

+0

У вас там трудная проблема. Тот, кто поставил проблему, должен был определить «первый» и «последний», потому что они неоднозначны. В конце концов, LIFO означает, что последний элемент в является первым элементом. Так они хотят, чтобы первый и первый, или последний, и последний? Говоря о стеках, лучше использовать термины «верх» и «снизу». –

ответ

2

Это помогает думать о стеке сверху донизу, как реальный стек книг. Если нажать книгу 1 в стек, а затем книги 2-6, ваш стек выглядит следующим образом:

6 
5 
4 
3 
2 
1 

Так 1 и 2 ваши первые два элемента (книги), и 6, 5 ваш последний и второй -длиться. Поскольку книга 6 была последней, она первая, чтобы оторваться от стека (pop в языке программирования), иначе ваш стек книг упадет!

+0

Это одна интерпретация. Я также знаю людей, которые скажут, что 6 - это первый элемент в стеке. «Первый» означает «первый элемент, который должен быть помещен в стек», или это означает «первый элемент, который будет выбит из стека»? По моему опыту, ответы программистов довольно равномерно распределены между ними. –

+0

Я ценю ваш ответ! –

+0

Если вы идете с расширением LIFO (и для очередей, FIFO), мое описание выстраивается в ряд с акронимами. – Kit

0

По этому вопросу люди могут иметь разные мнения. Самое лучшее, что можно сделать, - это понять проблему проблемы. Например, если вы решаете проблемы стека на онлайн-судьях, вы можете получить разъяснения из заявлений/примеров проблем или если вы решаете проблему в своей профессиональной деятельности, вы можете получить разъяснения из анализа требований. В конце, если бы вы могли решить проблему, которую вы должны использовать, неважно, что вы называете верхний элемент первым или нижним элементом как первый.