Рубрики

ВОРОТА | GATE-CS-2002 | Вопрос 44

Чтобы оценить выражение без каких-либо вызовов встроенных функций:
(A) достаточно одного стека
(B) нужны два стека
(C) Требуется столько стеков, сколько высота дерева выражений.
(D) В общем случае нужна машина Тьюринга

Ответ: (А)
Объяснение:
Любое выражение может быть преобразовано в форму Postfix или Prefix.

Оценка префикса и постфикса может быть выполнена с использованием одного стека.

Например: приведено выражение «10 2 8 * + 3 -».
Нажмите 10 в стеке.
Нажмите 2 в стеке.
Нажмите 8 в стеке.
Когда оператор '*' происходит, POP 2 и 8 из стека.
PUSH 2 * 8 = 16 в стеке.
Когда происходит оператор «+», POP 16 и 10 из стека.
Нажмите 10 * 16 = 26 в стеке.
Нажмите 3 в стеке.
Когда оператор '-' происходит, POP 26 и 3 из стека.
ЖМ 26 — 3 = 23 в стеке.
Итак, 23 — это ответ, полученный с использованием одного стека.

Таким образом, вариант (А) является правильным.

Пожалуйста, прокомментируйте ниже, если вы найдете что-то не так в вышеуказанном посте.

Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE-CS-2002 | Вопрос 44

0.00 (0%) 0 votes