- Главная
- Информатика
- Рекурсивные алгоритмы для деревьев (иллюстрации)

Содержание
Слайд 2class TreeNode { //Узел дерева
…
//Вывод списка объектов с сортировкой по ключам
public
class TreeNode { //Узел дерева
…
//Вывод списка объектов с сортировкой по ключам
public

void viewLeftRight (){
//Используется процедура обхода (просмотра) двоичного
// дерева слева направо (рекурсивный алгоритм)
//this — указатель на корень дерева (поддерева);
//обойти левое поддерево
if (left != null)
left.viewLeftRight();
//вывести информацию корневого узла дерева (поддерева)
System.out.println(inf);
//обойти правое поддерево
if (right != null)
right.viewLeftRight();
}
/*Вывод (обработка корневого узла) осуществляется только
после возврата из метода viewLeftRight(), запущенного для
левого поддерева - left.viewLeftRight(); - обработка 2-1-3*/
//Используется процедура обхода (просмотра) двоичного
// дерева слева направо (рекурсивный алгоритм)
//this — указатель на корень дерева (поддерева);
//обойти левое поддерево
if (left != null)
left.viewLeftRight();
//вывести информацию корневого узла дерева (поддерева)
System.out.println(inf);
//обойти правое поддерево
if (right != null)
right.viewLeftRight();
}
/*Вывод (обработка корневого узла) осуществляется только
после возврата из метода viewLeftRight(), запущенного для
левого поддерева - left.viewLeftRight(); - обработка 2-1-3*/
Слайд 3null
null
1
3
4
5
6
7
8
10
13
14
null
Терминал:
null
null
null
null
null
null
null
null
Обработка корня дерева (поддерева) - вывод данных узла
null
null
1
3
4
5
6
7
8
10
13
14
null
Терминал:
null
null
null
null
null
null
null
null
Обработка корня дерева (поддерева) - вывод данных узла

Слайд 4…
//Подсчет количества вершин на уровне level
public int nodeCount (int level){
//this
…
//Подсчет количества вершин на уровне level
public int nodeCount (int level){
//this

— указатель на корень дерева (поддерева);
if (level == 1) return 1;
return ((left != null) ? left.nodeCount(level-1) : 0) +
((right != null) ? right.nodeCount(level-1) : 0);
}
} //TreeNode
if (level == 1) return 1;
return ((left != null) ? left.nodeCount(level-1) : 0) +
((right != null) ? right.nodeCount(level-1) : 0);
}
} //TreeNode
/* При каждом рекурсивном вызове параметр level метода nodeCount() уменьшается на 1.
Если при очередном вызове метода nodeCount() параметр level еще не равен 1, а указатель на левое (правое) поддерево уже равен null, значит узла в соответствующем поддереве на изначально заданном уровне нет (возврат нуля). Если удалось дойти до значения level равно 1, то узел есть (возврат единицы)*/
- Предыдущая
през Л2Следующая -
Изготовление обувной полки
SQL (Structured Query Language)
Системное ПО. Операционные системы
Рубрики Вконтакте. Откуда взять идею?
Исполнитель Калькулятор
Java_amm_lesson_4
Программирование. Лекция 3
Экспертные системы
Базы данных
Создание сайта на тему ’’вредоносное ПО и вирусы’’
Электронные таблицы: общие сведения
Boardgamearena — сайт, позволяющий играть в разнообразные настольные игры прямо из дома
Построение инфокоммуникационных систем и сетей. Эталонная модель взаимодействия открытых систем. Системы плезиохронной иерархии
Построение трехмерных графиков функции в EXCEL
Лаборатория онлайн бизнеса 2021
Обобщение темы Базы данных. Решение заданий ЕГЭ
ВКР: Графическое оформление социальных сетей
Конструирование алгоритмов. Основы алгоритмизации
DNS, управление доменами, почта (06)
CloudTips для блогеров, стримеров, подкастеров, музыкантов и артистов чаевые и донаты на любую карту моментально
Основы передачи дискретных сообщений. Лекция 3
Мобильное приложение для Android и iOS устройств
Объёмное геометрическое моделирование. Создание геометрических тел с применением 3D-технологий
Навигационная система дополненной реальности в современных системах
Системный таймер
Вирусы
Основы ПИКГ. Программы AutoCAD SketchUP
Игра Безумный кулинар. Казуальная графика
Teams pad