Я читаю Язык программирования C и узнал, как сделать обратный польский калькулятор, используя стек. Вот одно из следующих упражнений:
Упражнение 4-4. Добавьте команды для печати верхних элементов стека без выталкивания, дублирования его и замены верхних два элемента. Добавьте команду для очистки стека.
Что они подразумевают под «дубликатом»? Означает ли это распечатать весь стек или поместить весь стек в себя (например, чтобы «1 2 3» стал «1 2 3 1 2 3»), или что?
Нет, не дублируйте стек, продублируйте "верхнюю" запись.
Итак, если ваш стек:
[1,2,3,4,5],
вы получите:
[1,2,3,4,5,5].
В данном случае субъект «это» относится к «верхнему элементу стека», а не к «стеку».
Я так понимаю, "элементы" были опечаткой.
Запись стекино-ориентированного языка в Википедии содержит описание операций манипуляции со стеком:
Управление стеками Поскольку стек является ключевым средством манипулирования данными в стек-ориентированном языке программирования, часто эти языки предоставляют своего рода операторы манипулирования стеком. Обычно предоставляются dup, для дублирования элемента в верхней части стека , exch (или swap), для обмена элементами в верхней части стека (первый становится вторым, а второй становится первым) , прокрутить, циклически переставить элементы в стеке или части стека, щелкнуть (или отбросить), отбросить элемент в верхней части стека (push неявно) и другие. Они становятся ключевыми в изучении процедур.
Управление стеками
Поскольку стек является ключевым средством манипулирования данными в стек-ориентированном языке программирования, часто эти языки предоставляют своего рода операторы манипулирования стеком. Обычно предоставляются dup, для дублирования элемента в верхней части стека , exch (или swap), для обмена элементами в верхней части стека (первый становится вторым, а второй становится первым) , прокрутить, циклически переставить элементы в стеке или части стека, щелкнуть (или отбросить), отбросить элемент в верхней части стека (push неявно) и другие. Они становятся ключевыми в изучении процедур.