Что значит дублировать стек? - PullRequest
1 голос
/ 08 февраля 2009

Я читаю Язык программирования C и узнал, как сделать обратный польский калькулятор, используя стек. Вот одно из следующих упражнений:

Упражнение 4-4. Добавьте команды для печати верхних элементов стека без выталкивания, дублирования его и замены верхних два элемента. Добавьте команду для очистки стека.

Что они подразумевают под «дубликатом»? Означает ли это распечатать весь стек или поместить весь стек в себя (например, чтобы «1 2 3» стал «1 2 3 1 2 3»), или что?

Ответы [ 2 ]

5 голосов
/ 08 февраля 2009

Нет, не дублируйте стек, продублируйте "верхнюю" запись.

Итак, если ваш стек:

[1,2,3,4,5],

вы получите:

[1,2,3,4,5,5].

В данном случае субъект «это» относится к «верхнему элементу стека», а не к «стеку».

Я так понимаю, "элементы" были опечаткой.

1 голос
/ 08 февраля 2009

Запись стекино-ориентированного языка в Википедии содержит описание операций манипуляции со стеком:

Управление стеками

Поскольку стек является ключевым средством манипулирования данными в стек-ориентированном языке программирования, часто эти языки предоставляют своего рода операторы манипулирования стеком. Обычно предоставляются dup, для дублирования элемента в верхней части стека , exch (или swap), для обмена элементами в верхней части стека (первый становится вторым, а второй становится первым) , прокрутить, циклически переставить элементы в стеке или части стека, щелкнуть (или отбросить), отбросить элемент в верхней части стека (push неявно) и другие. Они становятся ключевыми в изучении процедур.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...