Рейтинг пользователей: / 1
ХудшийЛучший 

Ильницкий В.Г.

ОТОБРАЖЕНИЕ БИНАРНОГО ДЕРЕВА НА ЭКРАНЕ КОМПЬЮТЕРА

Костанайский государственный университет им. А Байтурсынова

 

В статье говорится об одном из методов отображения бинарного дерева на экране компьютера при изучении программирования.

Ключевые слова: Список, дерево, граф, указатель, динамическая память.

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

Для начала для построения дерева необходимо объявить нестандартные типы данных указатель на текущую вершину дерева и тип, описывающий элемент дерева.

type  ukaz = ^tree;

  tree = record  inf: integer;   R,L: ukaz  end; 

Дерево будет построено в динамической памяти компьютера. Для ввода данных с клавиатуры и построения по ним бинарного дерева поиска предлагается следующая процедура:

procedure poisk (var t: ukaz; x: integer);

begin     if    t = nil  then begin  New(t);   t^.Inf:=x;   t^.R:=nil; t^.L:=nil  end

                                else   if   x<t^.inf   then poisk(t^.L,x)  else poisk(t^.R,x)

end;

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

procedure Ris (t: ukaz; a, b, y: integer);

begin     if    t=nil then exit ;

  gotoxy((a+b) div 2, y);  write(t^.inf);

  Ris(t^.L, a,  (a+b) div 2,  y+20);

 Ris(t^.R,  (a+b) div 2, b,  y+20);

end;

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

 

Литература:

1 М.С.Долинский, Решение сложных и олимпиадных задач по программированию / ЗАО Издательский дом «Питер», 2006. 366 с.

2 М.С.Долинский, Алгоритмизация и программирование на Tyrbo Pascal: от простых, до олимпиадных задач / СПб: Питер, 2004.240 с.

3 В.А.Емеличев, Лекции по теории графов / М.: Наука, 1990. 384 с.