Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
4.9. СХЕМЫ СБАЛАНСИРОВАННЫХ ДЕРЕВЬЕВПри решении ряда важных классов задач, аналогичных задаче Если Другой класс задач, требующих В настоящем разделе мы познакомимся с техникой, позволяющей выполнять в префиксном режиме последовательности, содержащие важные подмножества семи основных операций на множествах, введенных в разд. 4.1. Структурой данных, лежащей в основе метода, является сбалансированное дерево, под которым мы понимаем дерево с высотой, приблизительно равной логарифму числа его узлов. Вначале сбалансированное дерево строится легко. Трудно не дать ему в процессе выполнения последовательности операций ВСТАВИТЬ и УДАЛИТЬ превратиться в несбалансированное. Например, если периодически не делать перебалансировку, то при выполнении последовательности операций Известно много способов перебалансировки дерева в случае необходимости. Некоторые из них оставляют структуру дерева достаточно гибкой, так что число узлов в дереве высоты Мы обсудим два метода этого рода, называемые методами 2-3-деревьев и АВЛ-деревьев. Алгоритмы, работающие с 2-3-деревьями, понять легче, и сейчас мы обсудим их. Алгоритмы с АВЛ-деревьями похожи на них, и потому вынесены в упражнения. Определение. 2-3-деревом называется дерево, в котором каждый узел, не являющийся листом, имеет двух или трех сыновей, а длины всех путей из корня в листья одинаковы. Заметим, что дерево, состоящее из единственного узла, является 2-3-деревом. На рис. 4.26 приведены два 2-3-дерева с шестью листьями. В следующей лемме показана связь числа узлов и числа листьев в 2-3-дереве с его высотой. Лемма 4.6. Пусть Доказательство. Элементарная индукция по
Рис. 4.26. 2-3-деревья, Линейно упорядоченное множество Если допускается элементов гораздо больше, чем на самом деле используется, и дереву предстоит быть словарем, то, вероятно, лучше приписывать элементы в порядке возрастания слева направо. В каждом узле Во втором методе приписывания элементов листьям на порядок, в котором приписываются эти элементы, не налагается никаких ограничений. Метод особенно полезен для реализации операции ОБЪЕДИНИТЬ. Однако для выполнения операций типа УДАЛИТЬ нужен механизм для определения положения листа, представляющего данный элемент. Если элементами множества являются целые числа из фиксированной области, скажем от 1 до Рассмотрим следующие наборы операций.
Структуру данных, обеспечивающую выполнение операций из множества 1, будем называть словарем, из множества 2 — очередью с приоритетами, из множества 3 — сливаемым деревом, из множества 4 — сцепляемой очередью. Покажем, что 2-3-деревья могут служить для реализации словарей, очередей с приоритетами, сцепляемых очередей и сливаемых деревьев, применение которых обеспечивает выполнение Развитая здесь техника достаточно мощна, чтобы выполнить последовательности, составленные из любого совместного подмножества семи операций, перечисленных в начале главы. Единственная несовместность состоит в том, что операция ОБЪЕДИНИТЬ приводит к неупорядоченному множеству, а РАСЦЕПИТЬ и СЦЕПИТЬ предполагают наличие порядка.
|
1 |
Оглавление
|