![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
ArniLand |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
По заданию нужно реализовать удаление узлов ( студенты которые служат в армии) из дерева. Не могу разобраться с ним, не могли бы привести пример пожалуйста и объяснить принцип удаления.
Код программы:
|
|||
|
||||
world |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 2.10.2009 Где: Харьков Репутация: нет Всего: 12 |
Я смотрю Вы реализуете бинарное дерево, поэтому будем рассматривать удаление элемента в нём
Случай 1. У удаляемого узла нет потомков Просто удалили узел и всё. Случай 2. У удаляемого узла 1 потомок Ставим потомка на место удаляемого элемента и удаляем необходимый узел. Случай 3. У удаляемого узла 2 потомка Находим либо самый правый элемент левого поддерева (в левом элементе идём всегда по правой ветки пока ещё будут элементы в право.) либо самый левый элемент правого поддерева(уж это как сами решите) и ставим его на место удаляемого. После этого удаляем необходимый узел. Если интересует могу привести код класса на C#, увы Java класс написанный для этих же целей удалил.. --------------------
Say what you mean, and mean what you say. Robert Wilson Cody |
|||
|
||||
ArniLand |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
а как реализовать это условием того, что нужно удалять студентов которые служат в армии, то есть удалять узлы при условие?
|
|||
|
||||
mstalker26 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 4.7.2009 Репутация: 4 Всего: 11 |
Расскажите лучше, чего попробовали и какие мысли есть (пусть самые бредовые). А то уже третья тема в стиле "как там, напишите". Мы, конечно, напишем, но в голове-то Вашей знаний от этого не прибавится.
P.S. Все вышеизложенное является только моим "имхом" ![]() --------------------
Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом. |
|||
|
||||
world |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 2.10.2009 Где: Харьков Репутация: нет Всего: 12 |
Есть такая мысль делаем обход дерева и удаляем все узлы, где
Пример обхода дерева (прямой кажется называется) -проверяем узел -проверяем левый потомок -проверяем правый потомок
Вот это правильно конечно. ЗЫ Обход дерева у меня то же есть только на C# Это сообщение отредактировал(а) world - 23.9.2010, 00:58 --------------------
Say what you mean, and mean what you say. Robert Wilson Cody |
||||||
|
|||||||
ArniLand |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
Не могли бы выложить пример на C#, если тут нельзя, можете в ЛС отправить
|
|||
|
||||
ArniLand |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 17.8.2008 Репутация: нет Всего: нет |
world, нужно реализовывать все три случая? Мне нужен обход в ширину -
я так реализовал. Правильно? public void preorderPrint(Node root) { if (root == null) { System.out.println(root.data + ""); preorderPrint(root.left); preorderPrint(root.right); } Это сообщение отредактировал(а) ArniLand - 23.9.2010, 12:53 |
|||
|
||||
world |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 2.10.2009 Где: Харьков Репутация: нет Всего: 12 |
Реализовали правильно. Теперь, что касается удаления. Кидаю код прям здесь. Только сразу извиняюсь перепутал, что дерево у меня на С++
--------------------
Say what you mean, and mean what you say. Robert Wilson Cody |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |