Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data Structures and Algorithms in C++ 2e (На ру...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.37 Mб
Скачать

7.4. Упражнения 313

C-7.3 Для каждого узла v в дереве T, позвольте пред (v) быть разрядом v в предварительном заказе

пересечение T, позвольте почте (v) быть разрядом v в пересечении постзаказа T, позволить глубине (v) быть глубиной v и позволить desc (v) быть числом потомков v, не считая v самого. Получите почту определения формулы (v) с точки зрения desc (v), глубина (v), и пред (v), для каждого узла v в T.

C-7.4 Позвольте T быть деревом, узлы которого хранят последовательности. Дайте алгоритм, который вычисляет

и печати, для каждого внутреннего узла v T, последовательность, сохраненная в v и высоте поддерева, укоренились в v.

C-7.5 Алгоритмы дизайна для следующих операций для двоичного дерева T.

• preorderNext (v): возвратите узел, который посещают после узла v в предварительном заказе

пересечение T.

• inorderNext (v): возвратите узел, который посещают после узла v в inorder

пересечение T.

• postorderNext (v): возвратите узел, который посещают после узла v в постзаказе

пересечение T.

Какова продолжительность худшего случая Ваших алгоритмов? C-7.6 Дайте O (n) разовый алгоритм для вычисления глубины всех узлов

дерево T, где n - число узлов T. C-7.7 Зазубренное вводное представление дерева T является изменением

вводное представление T (см. рисунок 7.7), который использует углубление и разрывы линии, как иллюстрировано в рисунке 7.23. Дайте алгоритм, который печатает это представление дерева.

Продажи (

Внутренний международный (

Канада S. Америка за границей (

Африка Европа Азия Австралия

)

)

)

(a) (b)

Рисунок 7.23: (a) Дерево T; (b) заказал вводное представление T.

C-7.8 Позвольте T быть (возможно неподходящий) двоичное дерево с n узлами и позволить D быть

сумма глубин всех внешних узлов T. Опишите конфигурацию для T, таким образом, что D -W (n2). Такое дерево было бы худшим случаем для асимптотической продолжительности Алгоритма height1 (Кодовый Фрагмент 7.6).

314

Глава 7. Деревья

C-7.9 Для дерева T, позвольте nI обозначить число своих внутренних узлов и позволить nE

обозначьте число его внешних узлов. Покажите это, если у каждого внутреннего узла в T есть точно 3 ребенка, то nE = 2nI + 1.

C-7.10 Операции по обновлению expandExternal и removeAboveExternal не делают

разрешите создание неподходящего двоичного дерева. Дайте псевдокодекс descrip-tions для дополнительных операций по обновлению, подходящих для неподходящих двоичных деревьев. Вы, возможно, должны определить новые операции по вопросу также.

C-7.11 Фактором баланса внутреннего узла v двоичного дерева является различие

между высотами правых и левых поддеревьев v. Покажите как spe-cialize туристическое пересечение Эйлера Раздела 7.3.7, чтобы напечатать факторы баланса всех узлов двоичного дерева.

C-7.12 Два заказанных дерева T и T′′, как говорят, изоморфны если один из следующего -

мычание держится:

• И T и T′′ состоят из единственного узла

• У и T и T′′ есть тот же самый номер k поддеревьев и ith

поддерево T изоморфно к ith поддереву T′′, поскольку я = 1..., k.

Проектируйте алгоритм, который проверяет, являются ли два данных заказанных дерева ISO - morphic. Какова продолжительность Вашего алгоритма?

C-7.13 Расширьте понятие тура Эйлера к заказанному дереву, которое не является necessar-

ily двоичное дерево. C-7.14 Как упомянуто в Упражнении C-5.8, постфиксируйте примечание, однозначный путь

из написания арифметического выражения без круглых скобок. Это определено так

это, если» (exp1)(exp2)» нормальное (инфикс) полностью, ввело выражение

с операцией «», тогда ее эквивалентная постфиксация является «pexp1 pexp2 », где

pexp1 - версия постфиксации exp1, и pexp2 - версия постфиксации

exp2. Версия постфиксации единственного числа переменных просто что цифра - частота ошибок по битам или переменная. Так, например, версия постфиксации выражения инфикса

«((5 + 2)* (8- 3))/4» «5 2 + 8 3-* 4 /». Дайте эффективный алгоритм,

это, когда дали дерево выражения, производит выражение в постфиксации nota-

tion.

C-7.15 Учитывая надлежащее двоичное дерево T, определите reflection T, чтобы быть набором из двух предметов

дерево T таким образом, что каждый узел v в T находится также в T, но покинутый ребенок v в T - правильный ребенок v в T и правильный ребенок v в T, является покинутым ребенком v в T. Покажите, что пересечение перед заказом надлежащего двоичного дерева T совпадает с пересечением постзаказа reflection T, но в обратном порядке.

C-7.16 Алгоритм preorderDraw тянет двоичное дерево T, назначая x-и y-

координаты к каждому узлу v таким образом, что x (v) является числом узлов, предшествующих v в пересечении перед заказом T и y (v), являются глубиной v в T. Алгоритм postorderDraw подобен preorderDraw, но назначает x-координаты, используя пересечение постзаказа.