Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2013, 16:37   #1
Tclass
Пользователь
 
Регистрация: 02.06.2013
Сообщений: 11
По умолчанию Бинарное дерево С++

Найти в бинарном дереве два минимальных элемента. Не могли бы вы подсказать, как решить эту проблему?
Tclass вне форума Ответить с цитированием
Старый 05.06.2013, 16:50   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

В ходе поиска минимального элемента запоминать не только его, но и (когда находим новый элемент меньше) один отбрасываемый.
Abstraction вне форума Ответить с цитированием
Старый 05.06.2013, 17:52   #3
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Цитата:
Сообщение от Tclass Посмотреть сообщение
Найти в бинарном дереве два минимальных элемента. Не могли бы вы подсказать, как решить эту проблему?
Вам нужна практическая реализация в виде кода или совет, как решить проблему???
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 05.06.2013, 17:56   #4
Tclass
Пользователь
 
Регистрация: 02.06.2013
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Вам нужна практическая реализация в виде кода или совет, как решить проблему???
желательно практическая реализация, а так на самом деле без разницы)
Tclass вне форума Ответить с цитированием
Старый 05.06.2013, 17:59   #5
Tclass
Пользователь
 
Регистрация: 02.06.2013
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Вам нужна практическая реализация в виде кода или совет, как решить проблему???
ну у меня имеются наброски, только выводит один правильный минимальный элемент. Другой неверный
Код:
int MinData(TREE* t)
{
  if (t->Left->Left != NULL)
  { 
  return MinData(t->Left);
  }
  else
  {
  cout<<t->data<<"   ";
  cout <<t->Left->data; 
  cout<<endl;
  return 1;
  }
Tclass вне форума Ответить с цитированием
Старый 05.06.2013, 18:01   #6
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

А свои наработки есть, выкладывайте посмотрим... Хоть какие-нибудь... Сразу навскидку... Вы ищите только в левом поддереве...???
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 05.06.2013 в 18:03.
Bugrimov вне форума Ответить с цитированием
Старый 05.06.2013, 18:04   #7
Tclass
Пользователь
 
Регистрация: 02.06.2013
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
А свои наработки есть, выкладывайте посмотрим... Хоть какие-нибудь... Сразу навскидку... Вы ищите только в левом поддереве...???
Да. Так в любом случае все минимальные элементы находятся в левом поддереве
Tclass вне форума Ответить с цитированием
Старый 05.06.2013, 18:11   #8
Tclass
Пользователь
 
Регистрация: 02.06.2013
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
А свои наработки есть, выкладывайте посмотрим... Хоть какие-нибудь... Сразу навскидку... Вы ищите только в левом поддереве...???
Все, вопрос неакуален) Проблема решена)
Tclass вне форума Ответить с цитированием
Старый 05.06.2013, 18:14   #9
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Abstraction дает хороший совет, заведите 2 переменные для хранения минимальных элементов. Пусть минимальным значением №1 будет вершина дерева. Дальше сравнивайте все элементы относительно ее. Если встречается еще меньше то Мин №1 получает новое значение, а Мин №2 получает значение из Мин №1. И так далее, пока дерево не кончится....
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 05.06.2013, 21:58   #10
Tclass
Пользователь
 
Регистрация: 02.06.2013
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Abstraction дает хороший совет, заведите 2 переменные для хранения минимальных элементов. Пусть минимальным значением №1 будет вершина дерева. Дальше сравнивайте все элементы относительно ее. Если встречается еще меньше то Мин №1 получает новое значение, а Мин №2 получает значение из Мин №1. И так далее, пока дерево не кончится....
на самом деле очень полезный совет. Прекрасный вариант поиска 2х минимальных элементов.
Tclass вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не бинарное дерево LOST94 Visual C++ 0 09.04.2013 22:23
Бинарное дерево С++ Dfoer Фриланс 1 02.12.2011 12:49
Бинарное дерево! pawel32 Помощь студентам 3 14.11.2011 22:40
бинарное дерево СИ Anastasia.K Помощь студентам 0 31.10.2009 18:16
Бинарное дерево lubafffka Общие вопросы C/C++ 0 29.04.2009 12:28