«Коллекция данных – сбалансированное дерево поиска»





Скачать 305.47 Kb.
Название«Коллекция данных – сбалансированное дерево поиска»
страница1/3
Дата публикации31.07.2013
Размер305.47 Kb.
ТипЛабораторная работа
100-bal.ru > Военное дело > Лабораторная работа
  1   2   3


Министерство образования и науки РФ
Новосибирский государственный технический университет



Лабораторная работа № 2

по дисциплине

«Структуры и алгоритмы обработки данных»
«Коллекция данных – сбалансированное дерево поиска»

Факультет: АВТ

Группа: АМ-610

Выполнили: Асанов П. Проверила: Романенко Т.А.

Антонов А.

Вариант 7

Новосибирск 2008

  1. Цели работы:

    • Освоение технологии реализации ассоциативных нелинейных коллекций на примере АТД «Двоичное дерево поиска».

    • Освоение методики программирования рекурсивных и итеративных алгоритмов для структуры данных.

    • Изучение и исследование методов балансировки двоичных деревьев поиска на примере АТД «Сбалансированное двоичное дерево поиска».

    • Освоение методики модификации коллекции с помощью механизма наследования классов.




  1. Общее задание:

  1. Спроектировать, реализовать и провести тестовые испытания АТД «Сбалансированное двоичное дерево поиска» для коллекции, содержащей данные произвольного типа. Тип данных задается клиентской программой.

АТД «Сбалансированное двоичное дерево поиска» представляет собой модифицированную версию АТД «BST-дерево» с трудоемкостью операций O(log2n).

Интерфейс АТД «Сбалансированное двоичное дерево поиска» включает следующие операции:

    • опрос размера дерева;

    • очистка дерева;

    • проверка дерева на пустоту;

    • поиск объекта с заданным ключом;

    • включение нового объекта с заданным ключом;

    • удаление объекта с заданным ключом;

    • итератор для доступа к объектам в дереве с операциями:

      • установка на первый объект в дереве (объект с минимальным ключом),

      • установка на последний объект в дереве (объект с максимальным ключом),

      • проверка окончания просмотра,

      • доступ по чтению и записи к данным текущего объекта в дереве,

      • переход к следующему по значению ключа объекту в дереве,

      • переход к предыдущему по значению ключа объекту в дереве,

Для тестирования коллекции интерфейс АТД «Сбалансированное двоичное дерево поиска» включает дополнительные операции:

    • вывод структуры дерева на экран;

    • опрос числа просмотренных операцией узлов дерева;

  1. Выполнить отладку и тестирование всех операций АТД «Сбалансированное двоичное дерево поиска» с помощью меню операций.

  2. Выполнить сравнительное тестирование средней трудоемкости операций для коллекций «BST-дерево» и «Сбалансированное двоичное дерево поиска» для среднего и худшего случаев.

  3. Провести анализ экспериментальных показателей трудоемкости операций.




  1. Индивидуальное задание:

АТД «Рандомизированное дерево» как модификация АТД «BST-дерево». Алгоритмы операций АТД реализуются в рекурсивной форме.


  1. Формат АТД «Двоичное дерево поиска»

Двоичное дерево поиска (Binary Search Tree - BST) представляет собой упорядоченное, иерархическое, ассоциативное множество элементов (один из которых определен как корень), между которыми существуют структурные отношения «предки-потомки». Каждый элемент ассоциативного множества состоит из данных и уникального ключевого значения, идентифицирующего данные среди прочих в множестве. Положение элемента в дереве определяется ключевым значением при сопоставлении его с другими ключами, присутствующими в дереве.


    • Данные:

Вид структуры хранения данных: двоичное дерево поиска

Тип элементов: шаблонный тип Т

Параметры: размерность дерева - sz


    • Операции:


Конструктор:

Вход: нет

Процесс: создание дерева с фиктивным элементом

Постусловия: создано дерево размерности 0

Деструктор:

Вход: нет

Процесс: удаление всех узлов дерева

Постусловия: дерево очищено
Опрос размера дерева

Вход: нет

Предусловия: нет

Процесс: возврат значения размерности дерева

Выход: размерность дерева sz

Постусловия: нет
Очистка дерева

Вход: нет

Предусловия: дерево не пусто

Процесс: удаление всех элементов дерева

Выход: TRUE – дерево очищено, FALSE – дерево уже пусто

Постусловия: дерево пусто (размерность 0)
Проверка на пустоту

Вход: нет

Предусловия: нет

Процесс: проверка дерева на пустоту

Выход: TRUE – дерево пусто, FALSE – дерево не пусто

Постусловия: нет

Включение данных с заданным ключом

Вход: данные заданного типа T, ключ

Предусловия: объект с заданным ключом отсутствует в дереве

Процесс: поиск места для вставки элемента по ключу и вставка в это место

Выход: TRUE –вставка прошла успешно; FALSE – если такой ключ уже есть в дереве

Постусловия: значение добавлено в дерево; увеличение размерности дерева на 1
Удаление данных с заданным ключом

Вход: ключ

Предусловия: есть элемент с таким ключом

Процесс: проход по дереву с поиском заданного ключа и удаление элемента, содержащего этот ключ.

Выход: TRUE – удаление прошло успешно; FALSE – элемент с заданным ключом отсутствует

Постусловия: значение удалено из дерева; размерность дерева уменьшается на 1
Поиск данных с заданным ключом

Вход: ключ

Предусловия: есть элемент с таким ключом

Процесс: поиск в дереве элемента с заданным ключом

Выход: данные, хранящиеся в найденном элементе. Если ключ не найден или дерево пусто – выброс исключений

Постусловия: нет


  1. Итератор для АТД «Двоичное дерево поиска»


Итератор является средством последовательного доступа к элементам дерева для чтения/ изменения элементов. Позволяет устанавливать свое текущее положение на начальный и конечный элемент дерева. Итератор имеет два состояния: установленное (указывает на элемент дерева) и неустановленное. При выходе итератора за пределы структуры доступ к элементам прекращается до установки итератора внутрь дерева.


    • Данные:

Вид структуры хранения данных: структура последовательного доступа к элементам дерева


    • Операции:


Конструктор с параметрами

Вход: указатель на объект дерева

Процесс: создание объекта итератор и привязка к дереву

Постусловия: итератор создан, но не установлен
Установка на первый элемент

Вход: нет

Предусловия: дерево не пусто

Процесс: установка итератора на элемент с минимальным ключом в дереве

Выход: TRUE – установлено, FALSE – дерево пусто

Постусловия: итератор переведен на первый элемент
Установка на последний элемент

Вход: нет

Предусловия: дерево не пусто

Процесс: установка итератора на элемент с максимальным ключом в дереве

Выход: TRUE – установлено, FALSE – дерево пусто

Постусловия: итератор переведен на последний элемент
Переход к следующему элементу дерева

Вход: нет

Предусловия: дерево не пусто, итератор установлен, текущий элемент не фиктивный

Процесс: переход к следующему по значению ключа элементу дерева

Выход: TRUE – успешный переход, FALSE – при невыполнении предусловия

Постусловия: итератор переведен на следующий элемент
Переход к предыдущему элементу дерева

Вход: нет

Предусловия: дерево не пусто, итератор установлен, текущий элемент не фиктивный

Процесс: переход к предыдущему по значению ключа элементу дерева

Выход: TRUE – успешный переход, FALSE – при невыполнении предусловия

Постусловия: итератор переведен на предыдущий элемент
Проверка состояния итератора

Вход: нет

Предусловия: нет

Процесс: проверка текущего элемента на «фиктивность» и признака установленности

Выход: TRUE – итератор вне дерева, FALSE – итератор внутри дерева (установлен)

Постусловия: нет

Доступ к значению текущего элемента

Вход: нет

Предусловия: итератор внутри дерева

Процесс: нет

Выход: если внутри дерева - ссылка на данные элемента в дереве, иначе - исключение

Постусловия: нет

  1. Формат АТД «Сбалансированное (рандомизированное) дерево поиска»

Рандомизированное дерево структурно представляет собой BST-дерево, поэтому большинство методов просто наследуются от BST-дерева. Отличие состоит в реализации операций вставки и удаления в дерево, так как они имеют случайный характер. Основополагающим является то, что любой элемент может быть корнем дерева, поэтому при включении нового элемента в дерево случайным образом выбирается включение элемента в качестве листа или корня. В основе удаления лежит замена удаляемого элемента корнем его объединяемых поддеревьев. Причем объединение зависит от вероятности, показывающей, вершина правого или левого поддерева будет объединенным корнем.


    • Данные:

Вид структуры хранения данных: двоичное дерево поиска

Тип элементов: шаблонный тип Т

Параметры: размерность дерева – sz

количество узлов в поддереве n


    • Операции:


Включение данных с заданным ключом

Вход: данные заданного типа T, ключ

Предусловия: объект с заданным ключом отсутствует в дереве

Процесс: проход, аналогичный вставке в BST-дерево, но с вероятностью вставки в корень текущего поддерева на каждом шаге, равной 1/(n+1), где n – размерность текущего поддерева. С помощью поворотов дерево балансируется.

Выход: TRUE - вставка прошла успешно; FALSE – если такой ключ уже есть в дереве

Постусловия: значение добавлено в дерево; увеличение размерности дерева на 1
Удаление данных с заданным ключом

Вход: ключ

Предусловия: есть элемент с таким ключом

Процесс: проход по дереву с поиском заданного ключа и при удалении элемента - объединение левого и правого для него поддеревьев. Вероятность установки корня левого поддерева в качестве корня объединенного поддерева равна n/(n+m), правого – m/(n+m); здесь n - количество узлов в левом поддереве, m – в правом.

Выход: TRUE – удаление прошло успешно; FALSE – элемент с заданным ключом отсутствует

Постусловия: если заданный ключ найден, то в результате дерево не содержит элемента с данным ключом

  1. Тестирование трудоемкости операций

Для получения статистических оценок трудоемкостей для операций поиска, удаления и вставки была разработана тестирующая функция Testing(), которая создает BST и RND деревья большой размерности и заполняет их случайными 32-битными числами.

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

Тестирование трудоемкостей операций с деревьями проводилось для двух случаев: для среднего и для худшего (вырожденного). Худший случай представляет собой полностью вырожденное в список дерево с высотой равной количеству элементов дерева (элементы добавляются в BST дерево с возрастающими ключами). Для рандомизированного дерева вырожденный случай невозможен из-за поддержания сбалансированности операциями дерева

При тестировании операций поиска было задано количество промахов равное 10%

В следующей таблице приведены значения средних трудоемкостей операций:


Размер дерева

1.39*O(log2n)

Поиск

Вставка

Удаление

BST

RND

BST

RND

BST

RND

500

12.462

10.632

10.944

12.204

13.028

11.256

12.228

1000

13.852

12.072

11.904

13.686

14.374

12.218

13.764

5000

17.079

15.535

16.049

17.175

18.609

15.981

17.839

10000

18.470

17.913

16.960

18.564

19.343

18.144

18.238

50000

21.697

21.020

20.023

21.590

22.365

21.454

21.667

100000

23.087

22.561

21.978

23.593

23.343

22.783

22.871
  1   2   3

Добавить документ в свой блог или на сайт

Похожие:

«Коллекция данных – сбалансированное дерево поиска» iconКонспект урока по информатике для учащихся 11 класса «Средства поиска данных в Интернете»
Введение. Содержание дисциплины и порядок ее изучения. Фактографический поиск. Математические модели фактографического поиска. Информационная...
«Коллекция данных – сбалансированное дерево поиска» iconРеферат на тему «Сбалансированное питание это здоровье нации»
Здоровье человека важный показатель его личного успеха. Одним из важнейших условий сохранения и укрепления здоровья является сбалансированное...
«Коллекция данных – сбалансированное дерево поиска» iconРеферат на тему «Сбалансированное питание это здоровье нации»
Здоровье человека важный показатель его личного успеха. Одним из важнейших условий сохранения и укрепления здоровья является сбалансированное...
«Коллекция данных – сбалансированное дерево поиска» iconКоллекция/модуль поиска

«Коллекция данных – сбалансированное дерево поиска» iconВ базе данных
Исакова О. Н. Основы поиска патентов в базе данных Европейского патентного ведомства: Препринт 03 – Новосибирск: гпнтб со ран, 2003....
«Коллекция данных – сбалансированное дерево поиска» iconПрограмма дисциплины Технологии поиска, анализа данных и распространения информации в Интернет
Значение проекта Семантическая Паутина для расширения возмож-ностей смыслового поиска информации в сети Интернет
«Коллекция данных – сбалансированное дерево поиска» iconУрока информатики по теме «Табличные базы данных». (Открытый урок.)
Данный урок «База данных. Системы управления базами данных» является первым уроком по теме «Технологии хранения, поиска и сортировки...
«Коллекция данных – сбалансированное дерево поиска» iconКоллекция обивочных тканей
Данная коллекция станет украшением любой модели кроватей. Ткань относится к категории мебельного атласа отличается не только богатым...
«Коллекция данных – сбалансированное дерево поиска» iconОпределитесь с инструментами поиска
Для обнаружения в текстах фрагментов, аналогичных заданному, используются инструменты линейного поиска информации. К таким инструментам...
«Коллекция данных – сбалансированное дерево поиска» iconКоллекция игр
Играющие садятся в круг, ведущий объявляет, что все участники игры, начиная с первого, должны назвать по одному растению, причем...
«Коллекция данных – сбалансированное дерево поиска» iconКоллекция 038 Белгород
Это пример платной текущей распечатки бдкр, вместо контактных данных указаны только номера коллекций и
«Коллекция данных – сбалансированное дерево поиска» iconКоллекция 614 Тюмень
Это пример платной текущей распечатки бдкр по комнатным растениям, вместо контактных данных указаны только
«Коллекция данных – сбалансированное дерево поиска» iconКоллекция 589 Мордовия, Саранск
Это пример платной текущей распечатки бдкр по садовым овощным растениям, вместо контактных данных указаны
«Коллекция данных – сбалансированное дерево поиска» iconПрограмма по формированию навыков безопасного поведения на дорогах...
Сейба, дынное дерево, шоколадное дерево, пальмы, фикусы, гевея, кувшинка Виктория регия
«Коллекция данных – сбалансированное дерево поиска» iconЛитература по химии. Азбука веб-поиска для химиков. Методика поиска...
Химия и жизнь: научно-популярный журнал. Электронная версия научно-популярного журнала. Архив содержаний номеров. Доступ к полной...
«Коллекция данных – сбалансированное дерево поиска» iconТематика контента (источников, баз(ы) данных
Архив (acs legacy Archives) 25-ти журналов коллекция ретроспективных выпусков журналов с 1879 по 1995гг. Реферативные источники


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск