
96 Гл. 2. Основные понятия программирования
Поэтому информатика должна ограничиваться рассмотрением подмноже-
ства вычислимых бесконечных последовательностей знаков (соответственно
вычислимых вещественных чисел, к каковым относятся, скажем, У 2, е, я).
Сначала мы
будем
обходиться
даже
конечными последовательностями
знаков.
2.1.3.5*.
Вычислительные структуры
для нечисловых вычислений: размеченные бинарные деревья
В слове знаки расположены последовательно
(„линейно").
В кодовом же дереве (см. рис. 37, 38) мы находим знаки как
листья на дереве. Если разветвление всегда происходит на две
ветви и к тому же важен порядок ветвей, то речь идёт о
бинар-
ном
(упорядоченном)
дереве
1
.
Вычислительной структурой,
представляющей значительный исторический, теоретический и
практический
интерес, является
структура
бинарных упорядочен-
ных
деревьев
с
размеченными
(знаками из V)
листьями.
Такие
деревья называют ещё
облиственными
или
деревьями
с
помечен-
ными
листьями.
В качестве предельного случая сюда относят
также состоящие из одного знака
атомарные
деревья.
Основные
операции
— это
соединение
2Ъ
двух
деревьев в одно (обозначае-
мое через
cons
(. ,
.)
4
'
5
),
а также (частично определённые) обра-
щения
этой операции — взятие
левого
поддерева
и
правого
под-
дерева
(обозначаемые через саг(.) и
cdr{.)).
Операция
обобщения,
т. е. перехода от знака к атомарному
дереву,
чаще всего остаётся необозначенной. Наконец, нужен
ещё предикат
isatom(.),
чтобы различать атомарные и „настоя-
щие"
деревья.
Бинарные
деревья с помеченными листьями
служат
графи-
ческими
представлениями элементов абстрактной вычислитель-
нон
структуры
двоичных
(или
бинарных)
списков.
Они рекур-
сивно
определяются следующим образом:
Двоичный список — это либо
атомарный
двоичный список,
т. е. знак, либо
неатомарный
двоичный список, т. е. (упорядо-
ченная)
пара двоичных списков.
* Изучение этого раздела можно отложить до
2.4.1.6.
1
Точнее было бы сказать — о
диадическом
дереве (или
диадическом
списке).
В английском одно и то же слово binary употребляется там, где
немцы
используют три разных: binar, dual и
dyadisch.
[В русском более или
менее на равных употребляются два слова —
бинарный
и
двоичный.
— Изд.
ред.] Под
деревом
мы
всюду
понимаем
ориентированное
дерево
с
корнем.
2
В оригинале Kombination, что и объясняет
следующее
подстрочное
примечание.
—
Прим.
изд. ред.
3
От латинского combinare — соединять по два, сдваивать.
4
От английского constructor (конструктор).
5
Это обозначение сложилось исторически, равно как и появляющиеся
далее
обозначения саг и cdr (Маккарти, 1959 г.).