MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Динамические структуры данных: двоичные деревья

Название:Динамические структуры данных: двоичные деревья
Просмотров:96
Раздел:Информатика, программирование
Ссылка:none(0 KB)
Описание:Дерево — это совокупность элементов, называемых узлами (при этом один из них определен как корень), и отношений (родительский–дочерний), образующих иерархическую структуру узлов.

Университетская электронная библиотека.
www.infoliolib.info

Часть полного текста документа:

Динамические структуры данных: двоичные деревья
    Дерево - это совокупность элементов, называемых узлами (при этом один из них определен как корень), и отношений (родительский-дочерний), образующих иерархическую структуру узлов. Узлы могут являться величинами любого простого или структурированного типа, за исключением файлового. Узлы, которые не имеют ни одного последующего узла, называются листьями.
    В двоичном (бинарном) дереве каждый узел может быть связан не более чем двумя другими узлами. Рекурсивно двоичное дерево определяется так: двоичное дерево бывает либо пустым (не содержит ни одного узла), либо содержит узел, называемый корнем, а также два независимых поддерева - левое поддерево и правое поддерево.
    Двоичное дерево поиска может быть либо пустым, либо оно обладает таким свойством, что корневой элемент имеет большее значение узла, чем любой элемент в левом поддереве, и меньшее или равное, чем элементы в правом поддереве. Указанное свойство называется характеристическим свойством двоичного дерева поиска и выполняется для любого узла такого дерева, включая корень. Далее будем рассматривать только двоичные деревья поиска. Такое название двоичные деревья поиска получили по той причине, что скорость поиска в них примерно такая же, что и в отсортированных массивах: O(n) = C • log2n (в худшем случае O(n) = n).
    Пример. Для набора данных 9, 44, 0, -7, 10, 6, -12, 45 построить двоичное дерево поиска.
    Согласно определению двоичного дерева поиска число 9 помещаем в корень, все значения, меньшие его - на левое поддерево, большие или равные - на правое. В каждом поддереве очередной элемент можно рассматривать как корень и действовать по тому же алгоритму. В итоге получаем
    
    Выделим типовые операции над двоичными деревьями поиска:
    добавление элемента в дерево;
    удаление элемента из дерева;
    обход дерева (для печати элементов и т.д.);
    поиск в дереве.
    Поскольку определение двоичного дерева рекурсивно, то все указанные типовые операции могут быть реализованы в виде рекурсивных подпрограмм (на практике именно такой вариант чаще всего и применяется). Отметим лишь, что использование рекурсии замедляет работу программы и расходует лишнюю память при её выполнении.
    Пусть двоичное дерево поиска описывается следующим типом
    Type BT=LongInt; U = ^BinTree; BinTree = Record Inf : BT; L, R : U End;
    Покажем два варианта добавления элемента в дерево: итеративный и рекурсивный.
    {Итеративный вариант добавления элемента в дерево, Turbo Pascal}
    Procedure InsIteration(Var T : U; X : BT);
    Var vsp, A : U;
    Begin
    New(A); A^.Inf := X; A^.L:=Nil; A^.R := Nil;
    If T=Nil Then T:=A
    Else Begin vsp := T;
    While vsp Nil Do
    If A^.Inf < vsp^.Inf
    Then
    If vsp^.L=Nil Then Begin vsp^.L:=A; vsp:=A^.L End Else vsp:=vsp^.L
    Else
    If vsp^.R = Nil Then Begin vsp^.R := A; vsp:=A^.R End Else vsp := vsp^.R;
    End
    End;
    {Рекурсивный вариант добавления элемента в дерево, Turbo Pascal}
    Procedure InsRec(Var Tree : U; x : BT);
    Begin
    If Tree = Nil
    Then Begin
    New(Tree);
    Tree^.L := Nil;
    Tree^.R := Nil;
    Tree^.Inf := x
    End
    Else If x < Tree^.inf
    Then InsRec(Tree^.L, x)
    Else InsRec(Tree^.R, x)
    End;
    Аналогично на C++.
    typedef long BT;
    struct BinTree{
    BT inf;
    BinTree *L; BinTree *R;
    };
    /* Итеративный вариант добавления элемента в дерево, C++ */
    BinTree* InsIteration(BinTree *T, BT x)
    { BinTree *vsp, *A;
    A = (BinTree *) malloc(sizeof(BinTree));
    A->inf=x; A->L=0; A->R=0;
    if (!T) T=A;
    else {vsp = T;
    while (vsp)
    {if (A->inf < vsp->inf)
    if (!vsp->L) {vsp->L=A; vsp=A->L;}
    else vsp=vsp->L;
    else
    if (!vsp->R) {vsp->R=A; vsp=A->R;}
    else vsp=vsp->R;
    }
    }
    return T;
    }
    /* Рекурсивный вариант добавления элемента в дерево, C++ */
    BinTree* InsRec(BinTree *Tree, BT x)
    {
    if (!Tree) {Tree = (BinTree *) malloc(sizeof(BinTree));
    Tree->inf=x; Tree->L=0; Tree->R=0;
    }
    else if (x < Tree->inf) Tree->L=InsRec(Tree->L, x);
    else Tree->R=InsRec(Tree->R, x);
    return Tree;
    }
    Существует несколько способов обхода (прохождения) всех узлов дерева. ............






Похожие работы:

Название:Особенности и характеристика двух основных элементов таможенного оформления
Просмотров:722
Описание: Таможенное оформление - это процедура помещения товаров и транспортных средств под определенный таможенный режим и выпуск товаров в соответствии с заявленным режимом. Таможенное оформление начинается не поздн

Название:Элементы сферической геометрии
Просмотров:993
Описание: Экзаменационный реферат по геометрии Выполнил ученик 11 «б» класса Шкерин Андрей Владимирович МОУ «Гагинская средняя общеобразовательная школа» Гагино 2008 Введение На протяжении многих веков человечеств

Название:Морковь столовая. Элементы агротехники
Просмотров:499
Описание: Отношение к факторам внешней среды. Семена моркови очень медленно прорастают. При благоприятных температурах всходы появляются на 10—15-й день после посева, а в холодную и засушливую погоду — на 25—30-й. Они начинают

Название:Роль микроэлементов в составе удобрений
Просмотров:505
Описание: Черноногов В.Г., агроном ОАО «Буйский химический завод» Элементы питания с приставкой «микро» оказывают макроэффект, если они обеспечивают необходимый баланс питания. Данное обстоятельство является ключевым

Название:Томат. Элементы агротехники
Просмотров:495
Описание: Требования к условиям окружающей среды. Томат - однолетняя культура. Стебель томатов травянистый, сочный, во влажной среде дает дополнительные корни, с возрастом становится грубым. В пазухах листьев стебель образу

 
     

Вечно с вами © MaterStudiorum.ru