« Предыдущий вопрос
Операции над деревьями

Далее будем рассматривать все операции применительно к бинарным деревьям. I. Построение дерева

Загрузка
Скачать Получить на телефон
например +79131234567

txt fb2 ePub html

на телефон придет ссылка на файл выбранного формата

Что это

Шпаргалки на телефон — незаменимая вещь при сдаче экзаменов, подготовке к контрольным работам и т.д. Благодаря нашему сервису вы получаете возможность скачать на телефон шпаргалки по информационным технологиям. Все шпаргалки представлены в популярных форматах fb2, txt, ePub , html, а также существует версия java шпаргалки в виде удобного приложения для мобильного телефона, которые можно скачать за символическую плату. Достаточно скачать шпаргалки по информационным технологиям — и никакой экзамен вам не страшен!

Сообщество

Не нашли что искали?

Если вам нужен индивидуальный подбор или работа на заказа — воспользуйтесь этой формой.

Следующий вопрос »
Понятие графа. Способы представления графа

Граф – пара G = (V,E), где V – множество объектов произвольной природы, называемых вершинами,

Примеры реализации операций


1. Построить дерево из з узлов минимальной высоты, или идеально сбалансированное дерево (количество узлов левого и правого поддеревьев такого дерева должны отличаться не более чем на единицу).


Рекурсивный алгоритм построения:


1) первый узел берется в качестве корня дерева;


2) тем же способом строится левое поддерево из nl узлов;


3) тем же способом строится правое поддерево из nr узлов;


nr = n – nl – 1


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


Function Tree(n: Byte): TreeLink;


Var t: TreeLink; nl,nr,x: Byte;


Begin


If n = 0 then Tree:= nil


Else


Begin


nl:= n div 2;


nr = n – nl – 1;


writeln('Введите номер вершины );


readln(x);


new(t);


t^.inf:= x;


t^.left:= Tree(nl);


t^.right:= Tree(nr);


Tree:= t;


End;


{Tree}


End.


2. В бинарном упорядоченном дереве найти узел с заданным значением ключевого поля. Если такого элемента в дереве нет, то добавить его в дерево.


Procedure Search(x: Byte; var t: TreeLink);


Begin


If t = nil then


Begin


New(t);


t^inf:= x;


t^.left:= nil;


t^.right:= nil;


End


Else if x < t^.inf then


Search(x, t^.left)


Else if x > t^.inf then


Search(x, t^.right)


Else


Begin


{обработка найденного элемента}



End;


End.