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

Содержание
Слайд 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Следующая -
Изготовление обувной полки
Внеурочная деятельность обучающихся на уроках информатики и ИКТ
Информационные технологии. Информационный продукт
Что, где, когда, Игра по информатике
Работа с десятичной системой счисления
Лекция 2 ЕПМ-1-21
Что и зачем? Web-сервис aka диспетчер
Программирование баз данных
Презентация на тему: Браузеры
Презентация на тему Представление графической информации в компьютере
Определение PDO
Символьные переменные. Итоговый урок
Схема технологии обеспечения электронным талоном на проезд (ЭТ ФСС)
Как установить Пайчарм
Принципы разработки производственных систем
Организация вводавывода данных. Начала программирования. Язык программирования Паскаль
Алгоритмическая конструкция следование. Основные алгоритмические конструкции
Информационные процессы
Microsoft Access - реляционная СУБД корпорации Microsoft
Книжная графика
Требования, предъявляемые к конструкции ЭВМ
Проект по реализации турнира по геополитическому симулятору
Перенос базы SQL
Информационная безопасность
Цикл с условием окончания работы
Повторяем переменную
Презентация на тему Информационная безопасность
Гидродинамическое моделирование с помощью ECLIPSE Blackoil
Техническое предложение на выполнение работ