Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Методические указания к выполнению задания

Сопровождение | Алгоритмы внутренней сортировки | Задание к лабораторной работе | Методические указания к выполнению задания | Структуры списков | Задание к лабораторной работе | Методические указания к выполнению задания | Структуры BST - деревьев | Задание к лабораторной работе | Структуры сбалансированных деревьев |


Читайте также:
  1. I. Проверка домашнего задания
  2. II Проверка домашнего задания
  3. II. Проверка домашнего задания.
  4. II. Проверка домашнего задания.
  5. II. Проверка домашнего задания.
  6. VII. Методические указания
  7. XII. Требования к выполнению санитарных правил и организации работы медицинского персонала

1. Коллекции «Сбалансированное двоичное дерево поиска», использующие рандомизированне дерево, AVL – дерево или RB-дерево, разрабатываются как модификация класса «BST -дерево» с использованием технологии наследования классов. Коллекция на базе 2-3-дерева разрабатывается, как самостоятельный класс.

2. Для реализации операций АТД, рекомендуется использовать алгоритмы, приведённые в приложении 4.

3. Для тестирования разработанного класса – контейнера разрабатываются две программы: программа тестирования операций через меню, и программа тестирования трудоёмкости операций поиска, вставки и удаления.

4. Тестирование операций через меню выполняется для небольшого размера дерева (до 10 элементов). Тестирующая программа выполняет вызов метода коллекции для выбранной операции без предварительной проверки входных параметров и состояния коллекции. После выполнения операций необходимо вывести на экран содержимое дерева с помощью операции вывода структуры дерева. При выводе узла дерева необходимо отражать хранящийся в нём ключ поиска и дополнительный параметр, используемый для балансировки узла.

5. Сравнительное тестирование трудоёмкости операций коллекций «BST – дерево» и «Сбалансированное двоичное дерево поиска» выполняется в соответствии с технологией тестирования, изложенной в разделе 1.4.

6. Перед тестированием эффективности операций для обеих коллекций задаётся размер деревьев. Размер варьируется в пределах от 10 до 100 000 элементов. После тестирования на экран выводятся размер деревьев и средняя трудоёмкость операций поиска, вставки и удаления (среднее число пройденных узлов дерева).

7. Для рандомизированного дерева реализуются две версии для операций вставки и удаления. Также проводится сравнительное тестирование трудоёмкости операций для рандомизированных деревьев, использующих различные версии операций вставки и удаления.

Контрольные вопросы и упражнения.

1.

 
 

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

Значение RAND_MAX = 32767.

В процессе работы алгоритма генератор случайных чисел Rand() вычисляет следующую последовательность значений: 6782, 12653, 5187, 154, 23567, ….

2.

 
 

Приведите изображение структуры AVL – дерева после последовательного выполнения операции вставкиключей 3, 14, 18:

 

3. Приведите псевдокод алгоритма определения высоты AVL-дерева, имеющего трудоёмкость O(log 2 n).

4. Приведите изображение структуры изначально пустого RB-дерева после вставки ключей 30, 40, 20,.90, 10, 50, 70, 60, 80.

5. Приведите изображение структуры RB – дерева, полученного в упражнении 4, после удаления ключей 20, 40.

6. Приведите изображение структуры изначально пустого 2-3-дерева после вставки ключей 14, 4, 3, 45, 6, 30, 4, 35, 10.

7.

 
 

Приведите вид заданной структуры 2-3-дерева после удаления ключей 8, 20, 67, 90.

 


6. Лабораторная работа «Коллекция данных - хеш – таблица»

Цели работы: Изучение методов построения таблиц с постоянным временем доступа к элементам. Освоение технологии реализации таблиц на примере АТД «Хеш – таблица».

Рассмотренные ранее коллекции на основе деревьев поиска позволяют строить абстрактный тип данных «Таблица», типичными операциями которой являются поиск, вставка и удаление элементов по ключу. Но эти коллекции обладают логарифмической трудоёмкостью операций, зависящей от числа элементов в таблице. Встречаются приложения, требующие быстрого и гарантированного по времени выполнения, не зависящего от объёма данных в таблице. В частности, это требование свойственно программным системам, работающим в реальном времени. В этом случае используется специальная организация таблицы с постоянным временем выполнения операций – хеш-таблица [1, 3, 6, 8].

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

Если количество элементов в таблице существенно меньше, чем количество возможных значений ключей, то используется хеш-таблица. Хеш-таблица представляет собой массив с размером m, который может хранить n элементов. В нём прямое индексирование заменяется преобразованием значения ключа в индекс массива с помощью специальной функции. Процесс преобразования ключа k в индекс i называется хешированием и в хеш-таблице для этого используется специальная хеш-функция h(k)i, i= 0..m-1.


Дата добавления: 2015-11-04; просмотров: 100 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Задание к лабораторной работе| Функции хеширования

mybiblioteka.su - 2015-2024 год. (0.006 сек.)