ВУЗ:
Составители:
98
else smbtp=pop(opstk);
С учетом приведенных соглашений для функции precedence, а
также исправлений для строки 12 рассмотренный алгоритм может быть
использован для преобразования любой строки, записанной в инфиксной
форме, в постфиксную. Подытожим правила приоритетности скобок:
precedence("(",op) == FALSE для любой операции op
precedence(op,"(") == FALSE для любой операции op,
отличной от ")"
precedence(op,")") == TRUE для любой операции op, отличной
от "("
precedence(")",op) = "неопределенно" для
любой операции
op, (попытка сравнения двух указанных операций означает ошибку)
Проиллюстрируем этот алгоритм несколькими примерами:
Пример1:
А+В*С
Приводится содержимое symb, постфиксной строки и opstk после
просмотра каждого символа. Вершина opstk находится справа.
Строка symb Постфиксная строка opstk
1 A A
2 + A +
3 B AB +
4 * AB +*
5 C ABC +*
6 ABC* +
7 ABC*+
Строки 1, 3 и 5 соответствуют просмотру операнда таким образом, что
символ (symb) немедленно помещается в постфиксную строку. В строке 2
была обнаружена операция, а стек оказался пустым, поэтому операция
помещается в стек. В строке 4 приоритет нового символа (*) больше, чем
98
else smbtp=pop(opstk);
С учетом приведенных соглашений для функции precedence, а
также исправлений для строки 12 рассмотренный алгоритм может быть
использован для преобразования любой строки, записанной в инфиксной
форме, в постфиксную. Подытожим правила приоритетности скобок:
precedence("(",op) == FALSE для любой операции op
precedence(op,"(") == FALSE для любой операции op,
отличной от ")"
precedence(op,")") == TRUE для любой операции op, отличной
от "("
precedence(")",op) = "неопределенно" для любой операции
op, (попытка сравнения двух указанных операций означает ошибку)
Проиллюстрируем этот алгоритм несколькими примерами:
Пример1:
А+В*С
Приводится содержимое symb, постфиксной строки и opstk после
просмотра каждого символа. Вершина opstk находится справа.
Строка symb Постфиксная строка opstk
1 A A
2 + A +
3 B AB +
4 * AB +*
5 C ABC +*
6 ABC* +
7 ABC*+
Строки 1, 3 и 5 соответствуют просмотру операнда таким образом, что
символ (symb) немедленно помещается в постфиксную строку. В строке 2
была обнаружена операция, а стек оказался пустым, поэтому операция
помещается в стек. В строке 4 приоритет нового символа (*) больше, чем
Страницы
- « первая
- ‹ предыдущая
- …
- 96
- 97
- 98
- 99
- 100
- …
- следующая ›
- последняя »
