Tst-деревей - Большая Энциклопедия Нефти и Газа, статья, страница 1
"Имидж - ничто, жажда - все!" - оправдывался Братец Иванушка, нервно цокая копытцем. Законы Мерфи (еще...)

Tst-деревей

Cтраница 1


TST-деревьев ( с листьями), В этих индексах используются только ключи, которые иачикаются с граничных символов слов; индексирование, начин аи шсеся с границ символов, обеспечило бы более сложное индексирование, но при этом неполно вал ся бы гораздо больший объем лймнти.  [1]

Эффективность TST-деревьев в плане используемого объема памяти можно повысить, помещая ключи в листья в тех точках, где они различны, и избегая однопутевого ветвления между внутренними узлами, как это имело место в patricia - деревьях. В конце этого раздела исследуется реализация, основанная на первом из указанных изменений.  [2]

С помощью TST-деревьев легко решается еще несколько аналогичных задач. Операции этого типа требуют больших затрат или невозможны в случае применения других реализаций таблиц символов.  [3]

С помощью TST-деревьев лсглсо решается еще несколько аналогичны к задач. Например, можно посетить вес ключи в структуре данные которые отличаются от ключа поиска не более чем в одной позиции цн ры ( см. упражнение 15 59), Операции этого типа требуют больших затрат или невозможны в случае применении лругик реализаций табуна сччйодон.  [4]

Главное достоинство использования TST-деревьев заключается в том, что они легко приспосабливаются к неодно-родностям в ключах, возникновение которых весьма вероятно в реальных приложениях. Это является следствием двух основных эффектов. Во-первых, ключи в реальных приложениях образуются из больших наборов символов, а использование конкретных символов в наборах далеко от однородного - например, в конкретном наборе строк, скорее всего, будет использоваться только небольшая часть возможных символов. При использовании TST-деревьев можно задействовать 128 - или 256-символьное кодирование, не беспокоясь о лишних затратах для узлов с 128 - или 256-путевым ветвлением и не будучи вынужденными определять, какие наборы символов действительнб имеют значение. Наборы символов алфавитов, отличных от латинского, могут содержать тысячи символов - TST-деревья особенно подходят для строковых ключей, состоящих из таких символов. Например, на рис. 15.18 приведен список кодов для базы данных онлайновой библиотеки.  [5]

6 Экспериментальные данные исследования поиска. [6]

Третья причина привлекательности TST-деревьев заключается в том, что они поддерживают более общие операции, нежели рассмотренные операции таблиц символов. Например, программа 15.9 разрешает не указывать отдельные символы в искомом ключе и выводит все ключи в структуре данных, которые соответствуют указанным цифрам ключа поиска.  [7]

Алгоритм поиска для TST-деревьев существования столь прост, что читатели вполне могли бы описать его самостоятельно. Алгоритм вставки несколько сложнее, но прямо отражает вставку в trie - деревьях существования. Для выполнения поиска первый символ в ключе сравнивается с символом в корне. Если он меньше, поиск продолжается по левой связи, если больше - по правой, а если равен, поиск выполняется вдоль средней связи и осуществляется переход к следующему символу ключа. В любом случае алгоритм применяется рекурсивно. Поиск завершается промахом, если встречается нулевая связь или конец искомого ключа встречается раньше, чем NULLdigit. Поиск завершается попаданием, если пересекается средняя связь в узле, символ которого - NULLdigit. Для вставки нового ключа выполняется поиск, а затем добавляются новые узлы для символов в заключительной части ключа, как это имело место в trie - деревьях.  [8]

В этой реализации операции insert с использованием TST-деревьев элементы хранятся в листьях, что, по существу, является обобщением программы 15.3. В ней Я-путевое ветвление используется для первого символа, а отдельные TST-деревья - для всех слов, начинающихся с каждого символа. Если поиск завершается на нулевой связи, мы создаем лист для хранения элемента. Если поиск завершается в листе, мы создаем внутренние узлы, необходимые для различения найденного и искомого ключей.  [9]

Вероятно, наиболее важное свойство trie - деревьев или TST-деревьев с записями в листьях заключается в том, что их характеристики производительности не зависят от длины ключа.  [10]

Этот код определяет структуры данных, связанные с программами 15.11 и 15.12, которые предназначены для реализации таблицы символов с использованием TST-деревьев. В корневом узле используется Я-путевое ветвление: корень - это массив heads, состоящий из Я связей и индексированный по первым цифрам ключей. Каждая связь указывает на TST-дерево, построенное из всех ключей, которые начинаются с соответствующих цифр.  [11]

Определите экспериментальным путем, что использовать эффективнее: упорядоченные или неупорядоченные списки, и сравните эту реализацию с реализацией, основанной на использовании TST-деревьев.  [12]

Несмотря на все описанные преимущества, имеется одно важное обстоятельство, которым мы пренебрегли при рассмотрении использования BST-деревьев, patricia - деревьев или TST-деревьев для типичных приложений индексирования текста: сам по себе текст фиксирован, поэтому нет необходимости поддерживать динамические операции insert, как мы привыкли это делать. То есть, как правило, индекс строится один раз, а затем без каких-либо изменений используется для выполнения огромного объема поисков. Следовательно, динамические структуры данных типа BST-деревьев, patricia - деревьев или TST-деревьев могут оказаться вообще не нужными.  [13]

Этю яьлнется следствием двух сду да ыгм основных эффектов, Во-первыхн ключи в реальным приложениях образуются из больших наборов UHMBUJJUB, а использование конкретных сшиподов в наборах далеко от однородного - напрнмсрн в конкретном наборе строк, скорее всего, булст использоваться только небольшая часть возможным с и-чин лип, При использовании TST-деревьев можно задействовать 128 - к ш 256-символьное кодирование, не бсспокочсь о лишних затратах для узлов с 128 - или 25б - птс шм нетлением н не будучи вынужденными о преде. Наборы с мнйлон алфавитов, отличных от латинского, могут содержать тысячи символов - TST-деревья особенно пол холят лля строковым ключей, состоящих из таких символов. Во - вторых, ключи и практических приложениях jacro имеют структур к родины и формат, раги и чающийся от приложения к приложению, когда в одной части ключа используются только буквы, и другой - только цифры, а специальные символы служат рателнтелямн ( см упражнение 15 72), Например, на рис, 15Л8 приведен список кодов для баты даннык онлз ( йьЕоиой библиотеки, В случае та-кик ключей некоторые из узлов iric - cpcHa мояут Быть ГЕредстзапсны унарными узлами в TST-дерсэс ( ллз.  [14]

Несмотря на все описанные преимущества, имеется одно важное обстоятельство, которым мы пренебрегли при рассмотрении использования BST-деревьев, patricia - деревьев или TST-деревьев для типичных приложений индексирования текста: сам по себе текст фиксирован, поэтому нет необходимости поддерживать динамические операции insert, как мы привыкли это делать. То есть, как правило, индекс строится один раз, а затем без каких-либо изменений используется для выполнения огромного объема поисков. Следовательно, динамические структуры данных типа BST-деревьев, patricia - деревьев или TST-деревьев могут оказаться вообще не нужными.  [15]



Страницы:      1    2