Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/40: Рейтинг темы: голосов - 40, средняя оценка - 4.80
0 / 0 / 3
Регистрация: 22.06.2014
Сообщений: 54

Как реализовать бинарное дерево?

14.12.2016, 00:38. Показов 8266. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Ребят подскажите как реализовать бинарное дерево (не дерево бинарного поиска, а именно БИНАРНОЕ ДЕРЕВО). Знаю как реализовывается бинарное дерево поиск, но не могу понять как реализовать просто бинарное дерево по следующим причинам:
дерево должно поддерживать следующие операции:
1) поиск по ключу
2) добавление элемента
3) удаление элемента
4) нахождение максимального и минимального по ключу

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

Добавлено через 52 минуты
В принципе уже разобрался. Я рандомно просто добавляю
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.12.2016, 00:38
Ответы с готовыми решениями:

Бинарное дерево
Добрый день. Пишу аналог бинарного дерева, вот кусок кода public class Tree<T extends Comparable<T>> { private...

Бинарное дерево
Здравствуйте, в общем я написал программу которая строит бинарное дерево, но я не могу придумать как найти пути минимальной длинны между...

Как реализовать двоичное дерево?
public class BSTree<T1 extends Comparable<T1>, T2> { static class Node<T1, T2> { T1 key; T2 value; ...

1
3 / 3 / 5
Регистрация: 18.07.2012
Сообщений: 89
14.12.2016, 13:18
Лучший ответ Сообщение было отмечено person2713 как решение

Решение

Приветствую.
Все достаточно просто.
Модернизируете операцию поиска.
Когда найдете пустое место (null какой-нибудь)
туда записываете добавляемое значение

Добавлено через 12 минут
Рекурсивный подход
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class Node<K extends Comparable<K>, V> implements Comparable<Node<K, V>> {
    private K Key;
    private V Value;
    private Node<K, V> Left;
    private Node<K, V> Right;
 
    public Node(K key, V value) {
        Key = key;
        Value = value;
    }
...
 
    public void Insert(K key, V value) {
        if (Key.compareTo(key) >= 0) {
            if (Right == null)
                Right = new Node<K, V>(key, value);
            else
                Right.Insert(key, value);
        } else {
            if (Left == null)
                Left = new Node<K, V>(key, value);
            else
                Left.Insert(key, value);
        }
    }
...
}
Добавлено через 6 минут
не рекурсивный подход
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Tree<K extends Comparable<K>, V> {
    private Node<K, V> Root;
 
...
    public void Insert(K key, V value) {
        if (Root == null)
            Root = new Node<K, V>(key, value);
        else {
            Node<K, V> last;
            Node<K, V> cur;
            cur = last = Root;
            while (cur != null){
                last = cur;
                if (cur.compareTo(key) >= 0)
                    cur = cur.getLeft();
                else
                    cur = cur.getRight();
            }
            if (last.compareTo(key) >= 0)
                last.setRight(new Node<K,V>(key,value));
            else
                last.setLeft(new Node<K,V>(key,value));
        }
    }
...
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.12.2016, 13:18
Помогаю со студенческими работами здесь

Распечатать бинарное дерево
Всем добрый день! Нужно решить задачу где дыны некоторые целочисленные числа, к примеру 3 5 4 2 8 и надо создать бинарное дерево...

Бинарное дерево поиска
Я написала программу поиска минимума в массиве или среди элементов массива от i до j. В части запросов программа работает правильно, но...

Бинарное дерево Удаление елемента
Как мне реализовать удаление елемента в бинарном дереве? Суть в тексте то понял. Удаление элемента без детей – просто освобождаем память....

Коллекция TreeSet и бинарное дерево
Всех приветствую Вопрос следующий: Как в бинарное дерево попадает число, если TreeSet не использует hashCode() ? На основании чего...

Бинарное дерево
Задание: Implement Binary Tree and write unit tests for the class. Use JUnit to create tests. Please, implement next methods: 1. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru