Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/12: Рейтинг темы: голосов - 12, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 7

Необычный вывод бинарного дерева

11.10.2011, 23:19. Показов 2523. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вообщем воспользовался я поиском ничего похоже на решение моей проблемы нету.
суть состоит в том что мне нужно ввести с клавиатуры кучу идентификаторов, записать их куда то, посчитать общее значение и вывести графикой на форму. все делается в билдере 6 и только с использованием графических элементов.

Все было хорошо но застопорился я. Вообщем записал я все что мне нужно в БД там же посчитал. но вот вывести не могу/не умею. вывод должен быть на саму форму примерно такого вида:
a
/\
bc
/\/\
cddc
и тд и тп.
Мне нужен хотя бы пример ибо кроме результата я еще хочу понять это))

Добавлено через 11 часов 32 минуты
и да простит меня модер. Тема ап
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.10.2011, 23:19
Ответы с готовыми решениями:

Обход бинарного дерева
люди, выручайте, очень срочно нужен исходник для обхода бинарного дерева, хоть на С++, хоть на Паскале. У кого есть киньте, нужно...

Организация бинарного дерева поиска
Всем доброго времени суток. Передо мной встала задача организовать чтение файла и подсчёт повторений слов с помощью бинарного дерева...

Поиск заданного элемента бинарного дерева
Добрый вечер! Нужна ваша помощь в написании процедуры поиска заданного пользователем элемента дерева. struct Node { float data; ...

6
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
12.10.2011, 08:23
Ты не сможешь использовать std::map, т.к. тебе требуется "необычный" обход дерева. Поэтому сперва напиши свою реализацию бинарного дерева.

Как вариант, можно использовать массив с последующей сортировкой. Для отрисовки использовать "бинарный обход". Высота дерева - log2(N), ширина 2^(log2(N)-1). Нарисовать кружочки с цифрами и соединить их линиями не проблема...
0
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 7
12.10.2011, 10:30  [ТС]
да вообщем сортировать дерево мне то и нельзя потому и обратился за помощью. вершина дерева ето первый елемент в БД следующий елемент сравниваеться с первым и потом строиться влево или в право.
вчера домучился примерно до такого вивода
a
/\
b c
/ \
d g
но ведь мне йолочка ненужна

C++
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
28
Table2->Last();
AnsiString a1,b1;
double a,b,x1=315,y1=315,x2=285,y2=285;
for(int i=1;i<=5;i++)
{
Table2->Locate("ID",i+1, TLocateOptions());
a=Table2->Fields->Fields[2]->AsFloat;
a1=Table2->Fields->Fields[1]->AsString ;
Table2->Locate("ID",i, TLocateOptions());
b=Table2->Fields->Fields[2]->AsFloat;
b1=Table2->Fields->Fields[1]->AsString;
if(a>b)
{
Form1->Canvas->TextOutA(x1,y1,b);
Table2->Edit();
Table2->Fields->Fields[3]->AsString="R";
Table2->Post();
x1=x1+50;
y1=y1+15;
}
if(a<b){
Form1->Canvas->TextOutA(x2,y2,b1);
Table2->Edit();
Table2->Fields->Fields[3]->AsString="L";
Table2->Post();
x2=x2-15;
y2=y2-15;
}}
код вывода но и здесь много недочетов
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
12.10.2011, 10:36
Если выводить дерево в процессе чтения элементов из БД, то дерево будет не сбалансированным. В худшем случае это будет список.
Сортировать дерево тебе нельзя по той простой причине, что бинарное дерево всегда отсортировано по определению. А сортировать я предлагал массив.
0
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 7
12.10.2011, 10:42  [ТС]
думал еще сделать через флаги R и L то есть если число больше присваиваться флаг R меньше-L и когда идет сравнение если число меньше то сравнивать с следующим числом у которого флаг L но столкнулся с тривиальной проблемой. При записи в БД 1 идентификатор в низу таблици а поиск начинается сверху.
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
12.10.2011, 10:44
..........5
.....3........9
...1...2...7....13

Идентификаторы сами по себе L и R.
0
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 7
12.10.2011, 10:52  [ТС]
ну тогда я просто не понимаю как мне правильно построить цикл(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.10.2011, 10:52
Помогаю со студенческими работами здесь

Высота бинарного дерева поиска
Что неправильно в программе? Полное условие #include &lt;iostream&gt; #include &lt;cstdio&gt; #pragma comment (linker,...

Вывод бинарного дерева в виде дерева
Помогите пожалуйста вывести дерево в консоль в виде дерева. Саму структуру я написал и обход сделал. и даже выводит, но только в строчку, а...

Вывод бинарного дерева
Как организовать вывод бинарного дерева?

Вывод бинарного дерева
Нужно написать программу, которая будет выводить дерево на экран. Заготовка есть, дерево уже выводится, но нету стрелочек, которые бы...

Вывод бинарного дерева
Отобразить дерево бинарное состоящее из 0 и 1. Глубина дерева задается самостоятельно.Помогите пожалуйста!


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru