Аппликация зажима винтовки, размещенная Oren A довольно неплохая, но я попробую другую и постараюсь предвидеть то, что пытался испытать инструктор.
Стек, как это предполагает название является расположение «вещей», что имеет:
- Верхняя
- Дно
- Упорядочение между верхней и нижней (например, второй из сверху, 3-й снизу).
(думайте об этом как буквальной стопке книг на вашем столе, и вы можете взять только что-то из верхней части)
Раздвигая что-то в стеке означает «поместить его на вершине». Попадание чего-то из стека означает «взять верхнюю вещь» из стека.
Простое использование для изменения порядка слов. Скажем, я хочу обратить вспять слово: «попкорн». Я нажимаю каждую букву слева направо (все 7 букв), а затем выталкиваю 7 букв, и они попадают в обратном порядке. Похоже, это то, что он делал с этими выражениями.
толчка (р) толчка (о) толчка (р) толчка (с) толчка (о) толчка (г) толчка (п)
после нажатия всего слова, стек выглядит следующим образом:
| n | <- top
| r |
| o |
| c |
| p |
| o |
| p | <- bottom (first "thing" pushed on an empty stack)
======
, когда я поп() семь раз, я получаю письмо в таком порядке:
п, г, о, с, р, о, р
преобразование инфиксного/постфикс/префикса является патологическим примером в области информатики при обучении стеки:
Infix to Postfix conversion.
сообщения преобразования фикса для выражения инфиксного является довольно прямо вперед:
(выражение сканирования из слева направо)
- Для каждого номера (операнда) нажмите его на стек.
- Каждый раз, когда вы сталкиваетесь с оператором (+, -, /, *), дважды выходите из стека и помещаете оператор между ними. Нажмите, что в стеке:
Так что, если у нас есть 53 + 2 * мы можем преобразовать, что инфиксными в следующих шагах:
- Push-5
- Нажмите 3.
- Столкнутые +: pop 3, pop 5, нажмите 5 + 3 на стеке (будет соответствовать порядку 5 и 3)
- Push 2.
- Encountered *: pop 2, pop (5 + 3), push (2 * (5 + 3)).
* Когда вы достигнете конца выражения, если оно было правильно сформировано, вы должны содержать только один элемент.
Вводя «x» и «o», он, возможно, использовал их в качестве временных держателей для левого и правого операндов выражения инфикса: x + o, x - o и т. Д. (Или порядок x, o в обратном порядке).
Есть также хороший write up on wikipedia. Я оставил свой ответ в виде вики-подделки, я исказил любые выражения выражений.
@ Matt: Это вы инструктор вы бы лучше посоветовал принять некоторые намеки от этого вопроса. Если лектор скрывал свою работу, он делал это неправильно. Если он покрыл много материалов, которые не были должным образом обработаны в тексте и не делали набор заметок, он делал это неправильно. Так говорит голос вспомогательного опыта. ** @ adam **: Тем не менее, вызов инструктора «дерьмо» из учетной записи, который может быть прослежен для вашей студенческой идентичности, вероятно, не является мудрым, и вы дали нам только самую туманную идею о том, что вы * сделали из лекция. – dmckee
Не стесняйтесь принять ответ, который помог вам больше всего. :) –