Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Бинарное дерево - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Распечатать введенные данные в виде таблицы данные о результатах сессии студентов http://www.cyberforum.ru/cpp-beginners/thread1068426.html
С текстового файла считать последовательность записей, содержащих данные о книге: <Автор>, <Название книги>, <Год>, <Количество страниц>, <Стоимость>. Распечатать введенные данные в виде таблицы, а...
C++ Как использовать шаблонную функцию в другой единице трансляции? Как исправить ошибку? Спрашиваем у однокурсников и никто не знает(( file1.cpp export template<typename T> T twice(T t) { return t+1; http://www.cyberforum.ru/cpp-beginners/thread1068422.html
Нахождение определенного интеграла с указанной точностью тремя методами (переделать код с использованием указателей) C++
Задано функцию. Написать программу для нахождения определенного интеграла с точностью Е = 10-3 для заданных границ с помощью трех методов: 1) прямоугольников 2) трапеций 3) Симпсона. Выбор метода...
C++ Подскажите IDE для С++
Учил С#, пользовался MS Visual Studio 2008. Сейчас думаю перейти на С++, пользовался Code Blocks, Dev C++, C++ Builder 6. Так вот по сравнению с Visual Studio все эти IDE вообще кокае-то неудобные и...
C++ Вывести на экран все возможные перестановки введенных ползователем символов http://www.cyberforum.ru/cpp-beginners/thread1068405.html
С клавиатуры задается последовательность символов. Написать программу, которая выводит на экран все возможные перестановки введенных символов.
C++ Написать рекурсивную функцию перевода десятичного числа в двоичное и используя ее найти и вывести на печать двоичные коды первых 100 чисел Фибоначчи Написать рекурсивную функцию перевода десятичного числа в двоичное и используя ее найти и вывести на печать двоичные коды первых 100 чисел Фибоначчи. Выводит числа Фибоначчи Нужно написать... подробнее

Показать сообщение отдельно
__General__
24 / 24 / 3
Регистрация: 04.01.2014
Сообщений: 91
Завершенные тесты: 2
11.01.2014, 17:01
а) тут можно либо рекурсией просмотреть все вершины дерева, либо с помощью очереди.
б) если есть:
C++
1
2
3
4
5
6
struct node
{
    int key;
    node *left;
    node *right;
}
- узел дерева,
а node *root - указатель на корень дерева,

то:
C++
1
2
3
4
5
node *cur_root = root->right;
while (cur_root->left || cur_root->right) { //пока cur_root - не лист(т. е. пока у cur_root есть хотя бы один потомок).
    cur_root = cur_root->left;
}
return cur_root->key;
Добавлено через 3 минуты
в) для минимальной вершины (для максимальной - аналогично).

C++
1
2
3
4
5
node *cur_root = root;
while (cur_root->left || cur_root->right) { //пока cur_root - не лист(т. е. пока у cur_root есть хотя бы один потомок).
    cur_root = cur_root->left;
}
return cur_root->key;
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru