Аналогия с винтовочным зажимом, опубликованная Oren A , довольно хороша, но я попробую другой и попытаюсь предугадать, что инструктор пытался донести.
Стек,как следует из названия, это расположение «вещей», которое имеет:
- Верх
- Низ
- Порядок между верхом и низом (например, второйсверху, 3-е снизу).
(представьте, что это буквальная стопка книг на вашем столе, и вы можете взять что-то только сверху)
Что-то толкатьв стеке означает «положить его сверху».Извлечение чего-либо из стека означает «убрать верхнюю« вещь »из стека».
Простое использование - изменение порядка слов.Скажем, я хочу поменять слово: «попкорн».Я нажимаю каждую букву слева направо (все 7 букв), а затем выталкиваю 7 букв, и они заканчиваются в обратном порядке.Похоже, именно это он делал с этими выражениями.
push (p) push (o) push (p) push (c) push (o) push (r) push (n)
после нажатия всего слова стек выглядит следующим образом:
| n | <- top
| r |
| o |
| c |
| p |
| o |
| p | <- bottom (first "thing" pushed on an empty stack)
======
когда я pop () семь раз, я получаю буквы в следующем порядке:
n, r, o, c, p, o, p
преобразование инфикса / постфикса / префикса является патологическим примером в информатике при обучении стекам:
преобразование инфикса в постфикс.
Преобразование после исправления в инфиксное выражение довольно простое:
(сканирование выражения слева направо)
- Для каждого числа (операнда) нажмите его наstack.
- Каждый раз, когда вы сталкиваетесь с оператором (+, -, /, *), дважды выталкивайте из стека и помещайте оператор между ними.Вставьте это в стек:
Итак, если у нас есть 53 + 2 *, мы можем преобразовать это в инфикс, выполнив следующие шаги:
- Нажмите 5.
- Push 3.
- Обнаружено +: pop 3, pop 5, push 5 + 3 в стеке (соответствует порядку 5 и 3)
- Push 2.
- Encountered *: pop 2, pop (5 + 3), push (2 * (5 + 3)).
* Когда вы достигнете конца выражения, если оно было сформировано правильно, выстек должен содержать только один элемент.
Введя 'x' и 'o', он, возможно, использовал их в качестве временных держателей для левого и правого операндов выражения infix: x + o, x - o,и т. д. (или порядок x, o обратный).
В Википедии также есть хорошая запись.Я оставил свой ответ в виде вики-случая. Я испортил любой порядок выражений.