Содержание
- 2. Абстрактный тип данных Стек Стеком называется последовательность элементов одного и того же типа, к которой можно
- 3. Операции со стеком CreateStack() - создает пустой стек DeleteStack () – уничтожает стек IsEmpty() – функция
- 4. Алгебраические выражения Инфиксная запись выражений: каждый бинарный оператор помещается между своими операндами Префиксная запись выражений (Prefix):
- 5. Алгебраические выражения
- 6. Преобразование инфиксной формы в Prefix и Postfix Допустим, инфиксное выражение полностью заключено в скобки Преобразование в
- 7. Примеры Преобразование в префиксную форму: ( ( A + B ) * C ) + *
- 8. Преимущества префиксной и постфиксной форм записи Не нужны приоритеты операций, правила ассоциативности, скобки Алгоритмы распознавания выражений
- 9. Вычисление постфиксных выражений Допустим необходимо вычислить выражение: 2*(3+4) Его постфиксная запись: 234+* Порядок выполнения операций: Помещаем
- 10. Пример:
- 11. Псевдокод алгоритма Предположения: Строка содержит синтаксически правильное выражение Унарные операции и операции возведения в степень не
- 12. Псевдокод алгоритма For (каждый символ ch в строке) { if (ch является операндом) // помещаем ch
- 13. Преобразование инфиксных выражение в постфиксные Будем использовать: Стек для хранения операций и скобок Строку PostfixExp для
- 14. Преобразование инфиксных выражение в постфиксные Алгоритм: Если встретился операнд – помещаем его в строку Если встретилась
- 15. Пример: A-(B+C*D)/F)
- 16. Пример: A+B*(C/B+Z*(A+D))
- 17. Пример: A+B*(C/B+Z*(A+D)) A+B*(C/B+Z*(A+D)) Результат: ABCB/ZAD+*+*+
- 18. Псевдокод алгоритма: For (ch) { Swith (ch) { case operand: PostfixExp= PostfixExp+ch; break; case ‘(‘: Push(ch);
- 20. Скачать презентацию