КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Древовидные структуры (деревья бинарные, сбалансированные, сильноветвящиеся). Основные операции (поиск, вставка, удаление).Деревом называется орграф для которого: Существует узел, в которой не входит ни одной дуги. Этот узел называется корнем. В каждую вершину, кроме корня, входит одна дуга. С точки зрения представления в памяти важно различать два типа деревьев: бинарные и сильноветвящиеся. В бинарном дереве из каждой вершины выходит не более двух дуг. В сильноветвящемся дереве количество дуг может быть произвольным. Бинарное дерево — древовидная структура данных, в которой каждый узел имеет не более двух потомков. Как правило, первый называется родительским узлом, а дети называются левым и правым сыновьями. Для практических целей обычно используют два подвида бинарных деревьев — двоичное дерево поиска и двоичная куча. Бинарное дерево называется сбалансированным или АВЛ-деревом, если для любой вершины дерева, высота левого и правого поддеревьев отличается не более чем на единицу.
Поиск элемента (FIND) Дано: дерево Т и ключ K. Задача: проверить, есть ли узел с ключом K в дереве Т, и если да, то вернуть ссылку на этот узел. Алгоритм:
Добавление элемента (INSERT) Дано: дерево Т и пара (K,V). Задача: добавить пару (K, V) в дерево Т. Алгоритм:
Удаление узла (REMOVE) Дано: дерево Т с корнем n и ключом K. Задача: удалить из дерева Т узел с ключом K (если такой есть). Алгоритм:
|