Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
28.06.2014
Размер:
75.78 Кб
Скачать

Упражнение № 6

Вариант 10.

Захаров Антон

группа А–13–08

Условие задачи.

Привести схему распределения памяти для выражения ((l-p)/r)*(k+f)

Способ 1. Статический тип. Запись с вариантами (рекурсивное описание типа данных).

type expression = record

op : operator;

opd1, opd2 : term;

end;

term = record

case t : Boolean of

true : (id : alfa);

false : (subex: expression);

end;

*

true

/

true

true

l

false

p

false

r

false

+

true

k

false

f

Способ 2a. Динамический тип. Запись с вариантами. Неоднородное дерево.

type expression = record

op : operator;

opd1, opd2 : ^term;

end;

term = record

case t : Boolean of

true : (id : alfa);

false : (subex: ^expression);

end;

Способ 2б. Динамический тип с использование nil. Однородное дерево.

type node = record

op : char;

left, right : ^node;

end;

Способ 3. на базе вектора. Статический тип.

var t : array [1..8] of

record

op : char;

left, right : integer;

end;

*

/

+

l

p

r

k

f

Три формы бесскобочной записи.

Задание. Перевести в бесскобочную запись ((l-p)/r)*(k+f)

Способ обхода

Схема

Форма записи

Итог

1

Сверху вниз

RAB

префиксная

2

Слева направо

ARB

инфиксная

3

Снизу вверх

ABR

постфиксная