Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.63
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
#1

бинарное дерево?Файл? - C++

21.02.2010, 21:30. Просмотров 1958. Ответов 12
Метки нет (Все метки)

объясните пожалуйста что означает слово бинарное?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2010, 21:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос бинарное дерево?Файл? (C++):

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру - C++
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру. вот...

файл, структура, бинарное дерево - C++
-------------------------------------------------------------------------------- Доброго времени суток!!! Помогите решить задачку, у...

Бинарное дерево в типизированный файл - C++
Задача над которой бьюсь уже третий день. 1. Сделать базу данных клиентов банка на основе бинарного дерева дерева Сделать...

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой - C++
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

Бинарное дерево - C++
дано целочисленнное бинарное дерево. найти: а)количество вершин дереваж б)значение самой левой вершины в правом поддереве в)...

Бинарное дерево - C++
Помогите пожалуйста реализовать удаление элементов бинарного дерево, добавление и вывод вроде сделал, а тут путаюсь Бинарное дерево...

12
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
21.02.2010, 23:25 #2
МедведЪ,
Бинарное (двоичное) дерево (binary tree) - это упорядоченное дерево, каждая вершина которого имеет не более двух поддеревьев, причем для каждого узла выполняется правило: в левом поддереве содержатся только ключи, имеющие значения, меньшие, чем значение данного узла, а в правом поддереве содержатся только ключи, имеющие значения, большие, чем значение данного узла.

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

Узел дерева, не имеющий потомков, называется листом.

Добавлено через 1 минуту
МедведЪ, а да ещё почитай раздел дискретной математики - графы и его подраздел деревья)
ну и динамические структуры данных посмотри 2 варианта работы с деревом ( рекурсивный и цикловой)
1
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
22.02.2010, 07:14 #3
МедведЪ, Бинарное дерево - это абстакция.
Андрейка все правильно тебе рассказал.
А ПРЕДСТАВИТЬ его - можно в файле, можно на бумажке нарисовать, можно в голове держать,
можно по нему лазить - это уж как получится
Узел дерева, не имеющий потомков, называется листом.
Или сучком
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
22.02.2010, 11:52  [ТС] #4
Андрейка, все таки я не понял что такое дерево...может это меню с его подглавами?и подподглавами?может что то
C++
1
case 1:case 2:case 3
?
если нет то приведите код
0
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
22.02.2010, 12:38 #5
МедведЪ,
может это меню с его подглавами?и подподглавами
Да, это дерево, токмо не бинарное. У бинарного - 2 ветки в каждом узле.
Вот конструкция "if... else ..." - это уже бинарное древо, а "if ... else if... else..." -
уже не бинарное. Вообще в программирование деревья - на каждом шагу. Лес, тайга, сельва,
часто и бурелом..."
Бинарные деревья проще в теории (о них можно больше интересного сказать), поэтому
теоретики пытаются прочие дерева свести к бинарным.
Это тоже самое что вместо "switch.. case..." написать "if ... else { if ... else { if... } }"
По-моему легче всего понять смысл дерева - это взять лист бумаги и чего-нибудь на нем нарисовать. Какой-нибудь граф без циклов.
если нет то приведите код
Код тут не поможет. Тут надо привести все мироздание.
1
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
22.02.2010, 12:40  [ТС] #6
понятно, а файл?
0
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
22.02.2010, 13:02 #7
Цитата Сообщение от МедведЪ Посмотреть сообщение
понятно, а файл?
Хмм.
Файл - это хранилище, картотека. Хотя если хочется (или нужно) можно рассматривать сам файл
как корень, а его записи (или строчки) - как ветки. А буковки - как ветки, а битики (из которых
состоят байты) - как ветки следующего порядка. А можно рассматривать слова как ветки -
все зависит от твоей задачи.
Вот файловая структура (Диск - папки - файлы) - это точно дерево.
Дерево - это мысленная абстракция, которую мы накладываем (или в которую вкладываем),
на занимающую нас часть реального мира, чтобы с ней совладать.
Единственное ограничение дерева (в отличии от общего графа) - циклов быть не должно.
Вот Help какой-нибудь или Интернет - это уже не дерево, щелкая по ссылочкам ты прекрасно можешь вернуться в место, в котором уже побывал.
Короче - дерево это инструмент мышления, как язык, например (естесственный или алгоритмический - без разницы). И очень эффективный.
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
22.02.2010, 16:52  [ТС] #8
Day, не понимаюможно пример?
0
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
22.02.2010, 17:36 #9
Цитата Сообщение от МедведЪ Посмотреть сообщение
не понимаюможно пример?
пожалуйста. библиотечное дерево.
_______________1__а
___________1______аб
_______________0__б
______1___________аб
_1________________абвг
___________1______в
______0___________вг
___________0______г
Позволяет быстро найти нужную букву.
В малом масштабе удобство хранения и скорость поиска оценить трудно, но представьте дерево с тысячей листьев!
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
22.02.2010, 17:54  [ТС] #10
Patch,

Добавлено через 17 секунд
что за 1 и 0 там
0
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
22.02.2010, 17:59 #11
Цитата Сообщение от МедведЪ Посмотреть сообщение
что за 1 и 0 там
считай это кодом строки.
мне просто так представлять удобнее.
код - это ветки, а буквы - листья.
чтобы добраться до нужного листа, нужно пройти по веткам, согласно схеме дерева.

без такой бинарной схемы пришлось бы искать нужную букву перебором всего объема данных.
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
22.02.2010, 18:01  [ТС] #12
Patch, а можно код С++ с этим файлом?если не трудно...а то не догоняю...или статью где для новичков норм объясняется
0
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
22.02.2010, 18:35 #13
ёпрст...
примитивный вариант поиска данных по индексному бинарному дереву.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Node{
     l_Node *Node; //левый узел
     r_Node *Node; //правый узел
     char value;     //ключ
     int mass[100]; //какие-то индексируемые ключами данные
};
Node * find_node(char val, Node * lpNode)
{
     if(val <= lpNode ->Value) //если искомое меньше текущего, или равно ему - ищем слева
     {
         if(lpNode->l_Node == 0) return lpNode;
         return(find_node(val, lpNode->l_Node));
     }
     if(lpNode->r_Node == 0) return lpNode;  //иначе - ищем справа
     return(find_node(val, lpNode->r_Node));
}
0
22.02.2010, 18:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2010, 18:35
Привет! Вот еще темы с ответами:

Бинарное дерево - C++
Объясните пжлст почему не работает программа...при вводе файла пишет -842150451 /*Дан адрес P1 вершины дерева — записи типа TNode, ...

Бинарное дерево - C++
Друзья, помогите реализовать задачу в виде бинарного дерева: Оператор мобильной связи организовал базу данных абонентов,...

Бинарное дерево - C++
Нужно записать в дерево и вывести в форматированном виде каталог файлов(типа windows) на вход даны имена файлов вида c:\win\1 ...

Бинарное дерево - C++
Всем доброго времени суток! Задача такая: Реализовать бинарное дерево в программе предусматривающей следующие функции: добавление узла,...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru