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

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

R-7.11 Потяните дерево арифметического выражения, у которого есть четыре внешних узла, храня

у номеров 1, 5, 6, и 7 (с каждым числом, сохраненным в отличном внешнем узле, но не обязательно в этом заказе), и, есть три внутренних узла, каждый

храня оператора от набора+,- ,/, так, чтобы ценность корня

21. Операторы могут возвратиться и действовать на части, и оператор может

используйтесь несколько раз.

R-7.12 Позвольте T быть заказанным деревом больше чем с одним узлом. Он возможный что

предварительно прикажите, чтобы пересечение T посетило узлы в том же самом заказе как пересечение постзаказа T? Если так, дайте пример; иначе, обсудите, почему это не может произойти. Аналогично, действительно ли возможно, что пересечение перед заказом T посещает узлы в обратном порядке пересечения постзаказа T? Если так, дайте пример; иначе, обсудите, почему это не может произойти.

R-7.13 Ответьте на предыдущий вопрос для случая, когда T будет надлежащим двоичным деревом

больше чем с одним узлом. R-7.14 Позвольте T быть деревом с n узлами. Что является продолжительностью функции

parenPrint (T, T.root ())? (См. Кодовый Фрагмент 7.11.) R-7.15 Тянут (единственное) двоичное дерево T, такой что:

• Каждый внутренний узел T хранит единственный характер

• Пересечение перед заказом T приводит к EXAMFUN • inorder пересечение T приводит к MAFXUEN

R-7.16 Ответьте на следующие вопросы, чтобы оправдать Суждение 7.10.

a. Что является минимальным числом внешних узлов для двоичного дерева

с высотой h? Оправдайте свой ответ.

b. Что является максимальным количеством внешних узлов для двоичного дерева

с высотой h? Оправдайте свой ответ.

c. Позвольте T быть двоичным деревом с высотой h и n узлами. Покажите это

регистрация (n + 1)-1£ h£ (n- 1)/2.

d. Для которого ценности n и h могут вышеупомянутое более низкие и верхние границы

на h быть достигнутым с равенством? R-7.17 Опишите обобщение туристического пересечения Эйлера деревьев, таким образом что каждый

у внутреннего узла есть три ребенка. Опишите, как Вы могли использовать это пересечение, чтобы вычислить высоту каждого узла в таком дереве.

R-7.18 Измените C ++ функция preorderPrint, данный в Кодовом Фрагменте 7.10, таким образом,

то, что это напечатает последовательности, связанные с узлами дерева один за линию, и заказанный пропорционально к глубине узла.

R-7.19 Позвольте T быть деревом рисунка 7.3. Потяните, настолько лучше всего, как Вы можете, продукция

алгоритм postorderPrint (T, T.root ()) (Кодовый Фрагмент 7.13).

312

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

R-7.20 Позвольте T быть деревом рисунка 7.9. Вычислите, с точки зрения данных ценностей

в этом числе, продукции алгоритма diskSpace (T, T.root ()). (См. Кодовый Фрагмент 7.14.)

R-7.21 Позвольте T быть двоичным деревом рисунка 7.11.

a. Дайте продукцию preorderPrint (T, T.root ()) (Кодовый Фрагмент 7.10). b. Дайте продукцию функции printExpression (T, T.root ()) (Кодовый Фрагмент 7.29).

R-7.22 Опишите, в псевдокодексе, алгоритме для вычисления числа de -

scendents каждого узла двоичного дерева. Алгоритм должен быть основан на туристическом пересечении Эйлера.

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

сумма глубин всех внешних узлов T. Покажите что, если у T есть минимальное число внешних возможных узлов, то D - O (n) и если у T есть максимальное количество внешних возможных узлов, то D - O (n регистрируют n).

R-7.24 Позвольте T быть двоичным деревом с n узлами и позволить f быть нумерацией уровня

узлы T, как дали в Разделе 7.3.5.

a. Покажите что, для каждого узла v T, f (v)2£ n- 1.

b. Покажите пример двоичного дерева с семью узлами, которое достигает

выше верхней границы на f (v) для некоторого узла v.

R-7.25 Потяните представление двоичного дерева следующей арифметики expres-

Сьон: «(((5 + 2)* (2- 1)) / ((2 + 9) + ((7- 2)- 1))* 8)».

R-7.26 Позвольте T быть двоичным деревом с n узлами, которое понято с вектором, S, и позволить

f быть нумерацией уровня узлов в T, как дали в Разделе 7.3.5. Дайте псевдокодовые описания каждого корня функций, родителя, leftChild, rightChild, isExternal, и isRoot.

R-7.27 Покажите, как использовать туристическое пересечение Эйлера, чтобы вычислить число уровня,

определенный в Разделе 7.3.5, каждого узла в двоичном дереве T.

Креативность

C-7.1 Покажите, что есть больше, чем 2n различный потенциально неподходящий набор из двух предметов

деревья с n внутренними узлами, где два дерева считают отличающимися, если они могут быть привлечены как различно выглядящие деревья.

C-7.2 Опишите эффективный алгоритм для преобразования полностью уравновешенной последовательности

круглые скобки в эквивалентное дерево. Дерево, связанное с такой последовательностью, определено рекурсивно. Наиболее удаленная пара уравновешенных круглых скобок как - sociated с корнем, и каждая подстрока в этой паре, определенной подстрокой между двумя уравновешенными круглыми скобками, связана с поддеревом этого корня.