Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1182 / 467 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
1

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

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

объясните пожалуйста что означает слово бинарное?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2010, 21:30
Ответы с готовыми решениями:

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

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

файл, структура, бинарное дерево
-------------------------------------------------------------------------------- Доброго времени...

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

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

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

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

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

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

без такой бинарной схемы пришлось бы искать нужную букву перебором всего объема данных.
0
1182 / 467 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
22.02.2010, 18:01  [ТС] 12
Patch, а можно код С++ с этим файлом?если не трудно...а то не догоняю...или статью где для новичков норм объясняется
0
2341 / 497 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2010, 18:35

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

Бинарное дерево
Доброго времени суток. Ребят, я не спец, требуется решить такую задачу: Написать нерекурсивную...

Бинарное дерево
Написать программу для создания, на основе конструктора,дерева из объектов двух типов. Объекты...

Бинарное дерево
Помогите исправить ошибку, компилятор ругается на 110 строку, не пойму почему( #include &lt;iostream&gt;...

Бинарное дерево
Мой код: Patient.h // // Created by User on 26.04.2016. // #ifndef LABA_10_PATIENT_H...


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

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

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