Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб. 1 АиСД (Вариант 15).docx
Скачиваний:
6
Добавлен:
01.09.2024
Размер:
200.5 Кб
Скачать
  1. Что такое коллизия?

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

Коллизии могут быть различного типа:

Открытая адресация (Open Addressing): При этом методе разрешения коллизий новый элемент ищет другую свободную ячейку в таблице.

Цепочки (Chaining): При этом методе разрешения коллизий каждая ячейка таблицы представляет собой связанный список элементов с одинаковым хешем.

  1. Какой метод используется для разрешения коллизий?

Открытая адресация (Open Addressing):

Линейное зондирование (Linear Probing): При коллизии новый элемент ищет следующую свободную ячейку в таблице.

Квадратичное зондирование (Quadratic Probing): При коллизии новый элемент ищет следующую свободную ячейку, увеличивая шаг зондирования квадратично.

Двойное хеширование (Double Hashing): При коллизии используется вторая хеш-функция для вычисления нового индекса элемента.

Цепочки (Chaining):

При этом методе каждая ячейка таблицы представляет собой связанный список элементов с одинаковым хешем. Коллизии разрешаются путем добавления элементов в соответствующий связанный список.

Линейное рехеширование (Linear Rehashing): При коллизии происходит перехеширование, чтобы найти новую позицию для элемента.

Универсальное хеширование (Universal Hashing): Используется случайно выбранная хеш-функция из набора хеш-функций для каждого ключа, чтобы минимизировать вероятность коллизий.

  1. Что определяет показатель сбалансированности узла дерева?

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

  1. Перечислите понятие дерева, двоичного дерева, упорядоченного дерева, дерева поиска.

Дерево (Tree): Абстрактная структура данных, состоящая из узлов, связанных ребрами. Узел может иметь несколько дочерних узлов, образуя иерархическую структуру.

Двоичное дерево (Binary Tree): Тип дерева, где каждый узел имеет не более двух дочерних узлов: левого и правого. Двоичные деревья могут быть пустыми или содержать данные в узлах.

Упорядоченное дерево (Ordered Tree): Дерево, в котором существует порядок между дочерними узлами каждого узла. Упорядоченные деревья могут быть использованы для представления упорядоченных данных.

Дерево поиска (Binary Search Tree, BST): Вид двоичного дерева, где каждый узел имеет значение ключа, причем ключи в левом поддереве меньше ключа корневого узла, а ключи в правом поддереве больше ключа корневого узла. Это обеспечивает эффективный поиск, вставку и удаление элементов.

  1. Укажите способы задания дерева.

Список дочерних узлов (Child List): Каждый узел содержит ссылки на своих дочерних узлов. Этот метод часто используется для представления общего дерева.

Список смежности (Adjacency List): Для каждого узла хранится список его дочерних узлов. Этот метод часто используется для представления графа в виде дерева.

Матрица смежности (Adjacency Matrix): Матрица, где строки и столбцы представляют узлы, а элементы указывают на наличие ребра между узлами. Этот метод используется для представления деревьев без направленных ребер.

Представление в виде строки (String Representation): Дерево может быть закодировано в виде строки, где каждый символ представляет узел и его дочерние узлы. Например, префиксная запись (preorder traversal) дает строку, представляющую дерево.

Обход дерева (Tree Traversal): Дерево может быть задано путем обхода его узлов в определенном порядке (например, префиксный, инфиксный или постфиксный обход).