|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.02.2017, 18:32 | #1 |
Форумчанин
Регистрация: 15.11.2015
Сообщений: 151
|
Поиск в бинарном дереве
Не получается организовать поиск в бинарном дереве по значению, а не по ключу.
Использую дерево в качестве примера переводчика, то-есть я ввожу англ. слово - ищет русское слово, помогите исправить метод поиска Класс бинарного дерева: Код:
Код:
|
06.02.2017, 20:03 | #2 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Выложи весь проект.
|
07.02.2017, 00:59 | #4 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Я заметил, что у тебя заполняется только "право"... Ну всё, вооружившись этим знанием, я вроде, забацал:
Код:
0.jpg Но остаётся вопрос: а "лево" зачем?. И чем тогда отличается "дерево всегда с справой развилкой" от простого массива? (кстате, а в массиве этот поиск занял бы ровно 3-ри строчки: for+if+break; И остальные функции тоже упростились бы...). 1.jpg p.s.1: сложно искать узел дерева по английскому значению, если это значение никак не участвует в формировании этого самого дерева... Разве что обычный перебор применить; но для него нужно хранить знания по всем предыдущим развилкам, чтобы, в случае не удачи, можно было вернуться назад (на несколько позиций вверх) и повернуть в другую ветвь... Но для этого понадобится городить массив (bool-кий) - но ведь это бред: к дереву ещё и логистический массив (ведь дерево само по себе это логистика)... Хотя, если у тебя только правосторонее дерево, тогда, то что написал выше, то и правильно... Подумай: в случае всевозможных комбинаций функций "добавить / удалить" возможно ли появления "левосторонней развилки"? Или нет? p.s.2: когда я в первый раз прочитал у тебя "...пример переводчика", то сразу подумал не о "двух разветвлениях", а о "двадцать шести разветвлений" (или сколько там английских букв?). Ну вот, например, часть словаря в виде дерева (сопоставь "переходы" со "словами в квадратиках"): 2.jpg Тогда и поиск был бы такой (для примера слово "attach"): 3.jpg Последний раз редактировалось ura_111; 07.02.2017 в 01:33. |
07.02.2017, 11:26 | #5 | |
Форумчанин
Регистрация: 15.11.2015
Сообщений: 151
|
Цитата:
Просто раньше как-то был на алгоритмы и структуры подзабил, а теперь когда это пригодилось пришлось сидеть все учить, вроде и без проблем понял как бинарное дерево работает, ну а с реализацией немного запарился, буду разбираться, еще раз спасибо за Вашу помощь |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Prolog братья в бинарном дереве | Gorgetr | Помощь студентам | 11 | 29.05.2013 09:07 |
Указатель на родителя в бинарном дереве | Green Gin | Общие вопросы C/C++ | 8 | 01.04.2012 18:14 |
удаление элемента в бинарном дереве | Kukurudza | Общие вопросы C/C++ | 1 | 26.06.2011 22:51 |
Поиск в бинарном дереве не по ключу | lebrosha | Помощь студентам | 2 | 26.05.2009 15:32 |
Удаление вершины в бинарном дереве | lebrosha | Помощь студентам | 2 | 24.05.2009 13:51 |